이야기 ¶
2006-01-15 04:52:22 Wrong Answer 0.037 Minimum
뒤에 숫자 세는 것만 없었어도 먹히는건데..-_-;
아참. 0의 갯수가 2^31-1 까지라 함은, N의 입력범위를 모르겠다.
그래서 틀린게 아닐까?
5 12
팩토리얼-> 120, 12진수: A0
그러므로 1, 2 출력 해야함
// <가짜 코드>
// N을 팩토리얼
// 그것의 0의 갯수를 샌다.
// -> N의 팩토리얼에서 % B 을 0과 비교, N/B 한후 또 % B과 0 비교.
// ->N/8이 1보다 작아질 때 까지. count 센다.
이것을 기본으로 하려고 했다.
// N을 팩토리얼
// 그것의 0의 갯수를 샌다.
// -> N의 팩토리얼에서 % B 을 0과 비교, N/B 한후 또 % B과 0 비교.
// ->N/8이 1보다 작아질 때 까지. count 센다.
뒤에 숫자 세는 것만 없었어도 먹히는건데..-_-;
아참. 0의 갯수가 2^31-1 까지라 함은, N의 입력범위를 모르겠다.
그래서 틀린게 아닐까?
팩토리얼-> 120, 12진수: A0
그러므로 1, 2 출력 해야함
코드 ¶
//HowManyZerosAndDigits // no 10061 #include <iostream> using namespace std; #include <math.h> unsigned int factorial(const unsigned int &num) { unsigned int n = 1, factorialN = 1; while(n <= num) { factorialN *= n++; } return factorialN; } unsigned int main() { unsigned int N, B; unsigned int factorialN = 0; unsigned int zeroCount = 0, numCount = 0; while(cin >> N >> B) { factorialN = factorial(N); while(factorialN >= 1) { if(factorialN % B == 0) ++zeroCount; else ; ++numCount; factorialN /= B; } if(N == 0){ numCount = 0; zeroCount = 1; } cout << zeroCount << " " << numCount << endl; zeroCount = 0; numCount = 0; } return 0; }