二分法
1.定义left为0,right为Long.MAX_VALUE。之后再进行while循环来进行查找精准。之后在调用方法来计算二分查找的值中有几个5的倍数的个数。如果这个值中5的倍数的个数不等于条件就返回-1
符合条件就返回这个二分查找的数。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
long a = scanner.nextLong();
long left=0; long right=Long.MAX_VALUE;
while(left<=right){
long mid=(left+right)/2;
if(a>jiecheng(mid)){
left=mid+1;
}else{
right=mid-1;
}
}
if(jiecheng(left)!=a){
System.out.println(-1);
}else{
System.out.println(left);
}
}
public static long jiecheng(long i){
long zhi=0;
while(i>0){
zhi=zhi+i/5;
i/=5;
}
return zhi;
}
}