πŸ’  Cpp/[Solved.ac] Class2~4

[BOJ][C++] λ°±μ€€ 1676번: νŒ©ν† λ¦¬μ–Ό 0의 개수

선달 2023. 4. 19. 23:34
λ°˜μ‘ν˜•

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

 

1676번: νŒ©ν† λ¦¬μ–Ό 0의 개수

N!μ—μ„œ λ’€μ—μ„œλΆ€ν„° 처음 0이 μ•„λ‹Œ μˆ«μžκ°€ λ‚˜μ˜¬ λ•ŒκΉŒμ§€ 0의 개수λ₯Ό κ΅¬ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ‹œμ˜€.

www.acmicpc.net

 

문제

N!μ—μ„œ λ’€μ—μ„œλΆ€ν„° 처음 0이 μ•„λ‹Œ μˆ«μžκ°€ λ‚˜μ˜¬ λ•ŒκΉŒμ§€ 0의 개수λ₯Ό κ΅¬ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ‹œμ˜€.

μž…λ ₯

첫째 쀄에 N이 주어진닀. (0 ≤ N ≤ 500)

좜λ ₯

첫째 쀄에 κ΅¬ν•œ 0의 개수λ₯Ό 좜λ ₯ν•œλ‹€.

 

풀이

1μ—μ„œ nκΉŒμ§€ μˆ˜λ“€μ˜ 5의 인수의 갯수λ₯Ό κ΅¬ν•˜λ©΄ λœλ‹€ 

μ›λž˜λŠ” μΈμˆ˜κ°€ 2와 5μΌλ•Œμ˜ 갯수λ₯Ό 각각 κ΅¬ν•΄μ„œ 더 적은 갯수λ₯Ό λ¦¬ν„΄ν•˜λ©΄ λ˜μ§€λ§Œ,

μ ˆλŒ€μ μœΌλ‘œ 인수 2 의 κ°―μˆ˜κ°€ 인수 5의 κ°―μˆ˜λ³΄λ‹€ λ§ŽμœΌλ―€λ‘œ 인수 5의 갯수만 λ¦¬ν„΄ν•œλ‹€

 

참고둜 95%μ—μ„œ 틀리면 n=0인 경우λ₯Ό μƒκ°ν•˜μž

0! = 1 이기 떄문에 닡은 0이닀

#include <iostream>
#include <vector>

using namespace std;

int main() {
    int n;
    cin >> n;
    
    int five=0, temp; // five: n의 인수 쀑 5의 갯수
    for(int i=1; i<=n; i++) {
        temp = i;
        while(temp%5 == 0) {
            temp /= 5;
            five++;
        }
    }
    
    cout << five;
    
    return 0;
}
λ°˜μ‘ν˜•