백준 알고리즘(C++)

백준 3474번 교수가 된 현우 ( C++ )

coding232624 2024. 3. 20. 23:03

문제

https://www.acmicpc.net/problem/3474

 

3474번: 교수가 된 현우

첫째 줄에 테스트 케이스의 개수 T가 주어지고, 이어서 T개의 줄에 정수 N이 주어진다(1 <= N <= 1000000000).

www.acmicpc.net

 

해설

XX5포함일경우 -> XX2,XX4와 같이 짝수가 2번씩 포함된다 

=> 5를 포함 -> 2도 포함 -> 10완성

5포함 확인 후 -> 25포함확인 -> 125 포함확인의 순서를 진행

코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <bits/stdc++.h>
using namespace std;
int t, n, ret;
 
int main()
{
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
 
  cin >> t;
  for (int i = 0; i < t; i++)
  {
    cin >> n;
    ret = 0;
    if (n < 5)
    {
      cout << ret << "\n";
      continue;
    }
    for (int j = 5; j <= n;)
    {
      ret += n / j;
      j *= 5;
    }
    cout << ret << "\n";
  }
}
cs