= 이야기 = 2006-01-15 04:52:22 Wrong Answer 0.037 Minimum // <가짜 코드> // N을 팩토리얼 // 그것의 0의 갯수를 샌다. // -> N의 팩토리얼에서 % B 을 0과 비교, N/B 한후 또 % B과 0 비교. // ->N/8이 1보다 작아질 때 까지. count 센다. 이것을 기본으로 하려고 했다. 뒤에 숫자 세는 것만 없었어도 먹히는건데..-_-; 아참. 0의 갯수가 2^31-1 까지라 함은, N의 입력범위를 모르겠다. 그래서 틀린게 아닐까? 5 12 팩토리얼-> 120, 12진수: A0 그러므로 1, 2 출력 해야함 = 코드 = {{{ //HowManyZerosAndDigits // no 10061 #include using namespace std; #include 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; } }}}