LightOJ - 1138 - Trailing Zeroes (III)
Problem Link: http://lightoj.com/volume_showproblem.php?problem=1138
Code:
#include <bits/stdc++.h>
using namespace std;
long long zero(long long n)
{
long long coun=0;
while(n>=5)
{
coun+=n/5;
n/=5;
}
return coun;
}
int main()
{
int t,f=0;
cin>>t;
while(t--)
{
f++;
long long n,low=1,high=6000000000000000000;
cin>>n;
long long res=-1;
while(low<=high)
{
long long mid=(low+high)>>1;
long long l=zero(mid);
if(l==n)
{
res=mid;
break;
}
else if(l>n)
{
high=mid-1;
}
else
{
low=mid+1;
}
}
if(res==-1)
cout<<"Case "<<f<<": "<<"impossible"<<endl;
else
cout<<"Case "<<f<<": "<<res-(res%5)<<endl;
}
return 0;
}
No comments:
Post a Comment