原题链接:http://lightoj.com/volume_showproblem.php?problem=1138
题目意思就是给你个q,.求一个最小的n,使得
n!
结尾有q个0,如果没有输出impossible
sb题就看
n!
的因子里面有多少个5就行了,然后二分答案
#include <stdio.h>
int get(int a){
if(!a)return 0;
return a/5+get(a/5);
}
int main(void)
{
int t,cas=0;
scanf("%d",&t);
while(t--){
int a;
scanf("%d",&a);
int l=0,r=500000000;
int ans=-1;
while(l<=r){
int mid=(l+r)>>1;
int nw=get(mid);
if(nw==a){ans=mid;r=mid-1;}
else if(nw>a)r=mid-1;
else l=mid+1;
}
printf("Case %d: ",++cas);
if(ans==-1)puts("impossible");
else printf("%d\n",ans);
}
return 0;
}