解题思路:
写不出来,看的题解。要想凑个10,就必须要有一个2和5,但是明显在一个阶乘里,因子为2的数量一定多余5的数量,所以计算5的数量。
解题代码:
import java.util.Scanner;
public class Main {
//后面以0 结尾的一定是5!....(5的倍数的阶乘) 所以只需要判断5的倍数的阶乘
//(判断的数)/5 就是含有5的个数 也是阶乘后0的个数
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
long k = sc.nextLong();
long count;
long a = 5;//直接从5的阶乘(120)开始判断
while (true) {
long tempA = a;
count = 0;
while (tempA > 0) {
tempA /= 5;
count += tempA;
}
if (count < k) {
a += 5;
} else if (count == k) {
System.out.println(a);
break;
} else {
System.out.println(-1);
break;
}
}
}
}
运行结果: