[問題] n!尾數有幾個0 (C語言)

看板C_and_CPP作者 (Fengji)時間9年前 (2015/05/23 20:54), 9年前編輯推噓1(1012)
留言13則, 4人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) GCC 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 程式寫完後可以執行 我輸入3 輸出0 沒有問題 但輸入8 應該要輸出1 他就不會跑出任何東西 輸入更大的數字也一樣 餵入的資料(Input): 8 25 預期的正確結果(Expected Output): 1 6 錯誤結果(Wrong Output): 程式碼(Code):(請善用置底文網頁, 記得排版) #include <stdio.h> int main(){ int n; scanf("%d",&n); int i,fact=1; for(i=1;i<=n;i++){ fact *= i; } int k=0; while((fact%10)==0){ k++; } printf("%d\n", k); } 補充說明(Supplement): -- 一起在走 是緣份 走在一起 是幸福 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.240.160.109 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1432385657.A.0E0.html ※ 編輯: FengJi (111.240.160.109), 05/23/2015 20:54:59 ※ 編輯: FengJi (111.240.160.109), 05/23/2015 20:56:30

05/23 21:01, , 1F
while((fact%10)==0) 每一圈fact的值會是?
05/23 21:01, 1F

05/23 21:02, , 2F
!!! 我懂了!
05/23 21:02, 2F

05/23 21:02, , 3F
sorry我新手QQ
05/23 21:02, 3F

05/23 21:04, , 4F
我在k++下一行加入 fact /= 10;
05/23 21:04, 4F

05/23 21:04, , 5F
但輸出還是沒有正確耶
05/23 21:04, 5F

05/23 21:08, , 6F
int最多只能裝到12! long long int也頂多20!,怎麼辦?
05/23 21:08, 6F

05/23 21:09, , 7F
抱歉 沒問題了
05/23 21:09, 7F

05/23 21:11, , 8F
az大 不知道欸@@ 可以告訴我嗎0.0
05/23 21:11, 8F

05/23 21:12, , 9F
n!有幾個0只要算一下1~n質因數分解之後有多少5就好
05/23 21:12, 9F

05/23 21:13, , 10F
2*5吧?
05/23 21:13, 10F

05/23 21:17, , 11F
2一定比5多
05/23 21:17, 11F

05/23 21:17, , 12F
2的數量一定比5多,幾個2不重要
05/23 21:17, 12F

05/23 21:20, , 13F
瞭解!
05/23 21:20, 13F
文章代碼(AID): #1LO7Xv3W (C_and_CPP)