public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
long k= sc.nextLong();
long l=1;long r=Long.MAX_VALUE-1;//从最大的数字开始找
while(l<r){//折半查找
long mid=(l+r)/2;
if(check(mid)>=k) r=mid;
else l=mid+1;
}
if(check(l)==k){找到了
System.out.println(l);
}else System.out.println(-1);//没找到
}
public static long check(long u){//看里面有几个5就能知道有阶乘有几个0了 ,比如10!有两个5(5、10)必然有2个0,5(前面必有一个偶数,可以跟5凑一个10倍数)而10本来就是10的倍数。。。。。以此类推,按照这个去理解。
long sum=0;
while(u>0){
sum=sum+u/5;
u=u/5;
}
return sum;
}
标签:10,递归,sum,System,long,蓝桥,static,check
From: https://blog.csdn.net/qq_62691586/article/details/145284825