原帖;here
这里贴下代码,帮忙修一下谢谢~
#include<bits/stdc++.h>
using namespace std;
long long x;
long long l,r,mid;
inline long long read() {
char ch = getchar(); long long x = 0, f = 1;
while(ch < '0' || ch > '9') {
if(ch == '-') f = -1;
ch = getchar();
} while('0' <= ch && ch <= '9') {
x = x * 10 + ch - '0';
ch = getchar();
} return x * f;
}
inline bool check(int y){
int sum(0);
for(register long long int i=5;i<=y;i+=5){
long long int z=i;
while(z%5==0){
z/=5;
sum++;
}
}
return sum<=x;
}
int main(){
x=read();
int l(1),r=x*2;
int flag(0);
while(l<r){
mid=(l+r)>>1;
flag++;
if(check(mid*5)){
l=mid;
}
else{
r=mid-1;
}
if(flag>=10000000){
puts("impossible");
return 0;
}
}
printf("%lld",l*5);
return 0;
}
楼主之后上不了线了