这次爱奇艺的开发笔试出奇的简单!
题目描述:输入一个正整数,输出它的末端有几个0
思路:0-9这十个数字乘积为0是有限制的。: 5 x 偶数。而偶数的个数远远多于5的个数。所以我们只要计算出这个数的阶乘中所有数分解后有几个5就可以了。
public class Num1 {
public static void main(String[] args){
Scanner in = new Scanner(System.in);
Long n = in.nextLong();
long num = 0;
long tempNum = 5;
while (true){
if (n > tempNum){
num = num + n/tempNum;
tempNum = tempNum * 5;
continue;
}
break;
}
System.out.println(num);
}
}
优化:循环中的不断x5,可以改成初始值为输入,为每次/5进行迭代。可以避免产生更大的数出现问题(代码中循环时候最后一次终止条件有可能越界)