階乘尾數零的個數

2021-05-24 23:35:48 字數 770 閱讀 1991

100!的尾數有多少個零? 為了解決這個問題,必須首先從數學上分析在100!結果值的末尾產生零的條件。不難看出:乙個整數若含有乙個因子5,則必然會在求100!時產生乙個零。因此問題轉化為求1到100這100個整數中包含了多少個因子5。

*程式說明與注釋

#include

int main()

printf("the number of 0 in the end of 100! is: %d./n",count); //列印結果

return 0;

} *

執行結果

the number of 0 in the end of 100! is: 24.

#include

#include

int main()

m=5;

} printf("%d/n",sum);

return 0;

}

*問題進一步討論

本題的求解程式是正確的,但是存在明顯的缺點。程式中判斷整數n包含多少個因子5的方法是與程式中的100有關的,若題目中的100改為1000,則就要修改程式中求因子5的數目的演算法了。

*思考題

修改程式中求因子5的數目的演算法,使程式可以求出任意n!的末尾有多少個零。

#include

#include

int main()

m=5;

} printf("%d/n",sum);

return 0;

}

演算法精練 高次方數的尾數 階乘尾數零的個數

高次方數的尾數 要求 求133的133次方的最後三位數。利用c c 程式進行設計。演算法設計 由於計算機所能表示的整數範圍有限,直接乘的方法顯然是不可能得到正確的結果。但事實上,題目只要求保留後三位,完全沒有必要求出完整結果。因此 通過研究乘法的規律可以發現,乘積的後三位的值只與乘數與被乘數的後三位...

某數階乘的尾數0的個數

1 大數的階乘後尾0的個數,求0的個數,讓我們想到0就是由2,5的乘積組成,這裡我為什麼沒有把10,100 等等,都出來而只單單說只是2,和5的乘積呢,我們先回憶一下,唯一分解定理。2 唯一分解定理,概念 任意乙個大於0的正整數都能被表示成若干個素數的乘積且表示方法是唯一的 整理可以將相同素數的合併...

階乘末尾零的個數

請設計乙個演算法,計算n的階乘有多少個尾隨零。給定乙個int n,請返回n的階乘的尾零個數。保證n為正整數。測試樣例 5返回 1 思路 對n 進行質因數分解,n 2的x次方 3的y次方 5的z次方 因為10 2 5,所以末尾零的個數只與x和z相關,每一對2和5相乘可以得到乙個10,因為x大於等於z,...