试题 E: 求阶乘
时间限制: 1.0s 内存限制: 512.0MB 本题总分:15 分
【问题描述】
满足 N! 的末尾恰好有 K 个 0 的最小的 N 是多少?
如果这样的 N 不存在输出 −1。
【输入格式】
一个整数 K。
【输出格式】
一个整数代表答案。
【样例输入】
2
【样例输出】
10
【评测用例规模与约定】
对于 30% 的数据,1 ≤ K ≤ 106.
对于 100% 的数据,1 ≤ K ≤ 1018
import java.util.Scanner;
public class Main {
public static long find(long k) {
long temp = k;
long ans = 0;
long j = 0;
for (long i = 5; i <= k; i += 5) {
j = i;
while (j % 5 == 0) {
ans++;
j /= 5;
}
}
return ans;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
long k = sc.nextInt();
long i=0;
long start =System.currentTimeMillis();
while(true) {
long end = System.currentTimeMillis();
if(end-start==999) {
System.out.println(-1);
break;
}
if(find(i)==k) {
System.out.println(i);
break;
}
i++;
}
}
}