看到題目后,分析了下, 10的階乘就已經很大了。計算出來再得到這個末尾的0的個數,完全不現實,即使實現了也是很麻煩的。
后來想某個數的階乘中乘積有5結尾的數字的時候就應該在結果的末尾產生一個0.
付諸實現,測試了幾個, 沒出錯。
貼出來, 大家看看, 有問題了及時指教:
/**
* 求1000~10000之間的數n的階層并計算所得的數n!末尾有多少個0?
*/
public static void test2(int number){
int count = number/5;
System.out.println(count);
}
又復習了下數學知識,上面的計算應該是不對的。
應該寫成下面這樣,每到5的倍數時候會+1 。
int x = 10000;
while (x>0)
{
count = count + x / 5;
x = x / 5;
}
System.out.println(count);