描述
输入一个正整数n,求n!(即阶乘)末尾有多少个0? 比如: n = 10; n! = 3628800,所以答案为2
输入描述:
输入为一行,n(1 ≤ n ≤ 1000)
输出描述:
输出一个整数,即题目所求
示例1
输入:
10
复制输出:
正确解答:
import java.util.*;//导入全部java包
public class Main{
public static void main (String[] args){
Scanner in = new Scanner(System.in);//可以在运行后在面板内输入想测试的数字
int n = in.nextInt();//定义一个输入n,对应上一行
int zeros = 0;//这个是最后要输出的有多少个0
for(int i = n; i > 0;i--){//for循环是达到输入的n依次递减
int m = i;
while(m % 5 == 0){//while循环是想判断n依次递减中哪些可以整除5,从而达到最后可以知道有多少个0
zeros++;
m = m/5;
}
}
System.out.println(zeros);
}
}
这道题是通过发现:末尾的0是通过(偶数*5)得到的,我们可以找到n=5的倍数
----------------------------------