题目描述
输入N,求N!末尾的第一个非零数字。如6 ! = 720,因此6的阶乘末尾的非零位是2。
输入描述:
仅一行,包含一个整数N(0<=N<=10,000,000)
输出描述:
仅一行,包含一个整数,表示最右边的非零的值
输入例子1:
6
输出例子1:
2
例子说明1:
6 ! = 720
题解
简单的解法没看懂,所以就先求阶乘值,然后再取最后一个非零数字
package cn.zsk.quickHand;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int m = scanner.nextInt();
long n = jiecheng(m);
if (n > 0){
System.out.println(n % 10);
}
}
private static long jiecheng(int m) {
if (m == 0){
return 1;
}
long x = 1;
for (int i = 1;i <= m;i++){
x *= i;
while (x % 10 == 0){
x /= 10;
}
x %= 100000;
}
return x;
}
}