이야기 ¶
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;
}










