소ê°� ¶
ì‹œê°„ì œí•œì�´ 1분짜리 ë¬¸ì œë‹¤. Digitsì�˜ 개수를 세는 것ì�€ 로그를 ì�´ìš©í•˜ë©´ 간단히 í•´ê²°ë�˜ë‚˜, Zerosì�˜ 개수를 세는 방법ì�´ 딱히 ë– ì˜¤ë¥´ì§€ 않는다.
코드 ¶
~cpp
// no10061 - How many zeros and how many digits?
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
double N; // number
double B; // base
double i;
double nDigit; // how many digits?
int nZero; // how many zeros?
double temp;
double backTemp;
while (cin >> N >> B)
{
nZero = 0;
nDigit = 0.0;
backTemp = 1;
for (i=2; i<=N; i++)
{
nDigit += log(i) / log(B);
temp = backTemp * i;
while (true)
{
nZero++;
temp = int(temp/B);
}
backTemp = int(i);
}
cout << nZero << " " << int(nDigit) + 1 << endl;
}
return 0;
}










