ì�´ì•¼ê¸° ¶
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;
}










