本文主要是介绍UVA 10061-多少个零和数字,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
奇迹啊
我A掉了第五单元的最后一个题,哈哈
学到了两个知识
还有输出的格式问题
阶乘的位数与零尾数问题!!!
log()
与质因数&&&!!!
零尾数由最少的质因数的个数决定!!!
#include <iostream>
#include <cmath>
using namespace std;
int main ()
{
long long n;
int bit;
double bcount, zcount;
while(cin>>n>>bit)
{
bcount = 0;
zcount = 2147483647;
for(long long i = 1; i <= n; i++)
bcount += log((double)i);
bcount = (int)(bcount/log((double)bit)+1e-4)+1;
for(int i = 2; i <= bit; i++)
{
int j = 0;
for(j = 0; !(bit%i); j++,bit/=i);
if(j)
{
int k ,ncount;
for(k = i,ncount = 0; k <= n; k*=i)
ncount += n/k;
if(zcount>(ncount/j))
zcount = ncount/j;
}
}
cout<<(int)zcount<<" "<<(int)bcount<<endl;
}
return 0;
}
这篇关于UVA 10061-多少个零和数字的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!