計算n!的最後一位非0的數

2021-10-03 11:57:50 字數 387 閱讀 9515

#includeint main()

if(sum>=100) //這裡若設定太小,當階乘很大時,會出現錯誤

// printf("%d:%d\n",i,sum); //該處為測試所用

} printf("%d",sum%10);

return 0;

}

這裡需要說明的是,當if(sum>=100) 判斷條件不夠大時,比如只有sum>=10,那麼每次只保留階乘的最後一位非0位,則當計算到末位是5的階乘的時候,計算的時候會出現丟失資料,比如36×25=900;這個9是由36倆位數字決定的,這時候就不能只取末尾一位,所以該判斷條件越大適用於的n也越大。所以此程式當n特別大時,則需要修改程式。

個人見解,不喜勿噴,歡迎指正。

n 最後一位非零數 poj 1150

題意 求p n,m 的最後一位非零數。思路 討論1 n中2,5,3,7,9因子的個數,具體移步 按照我的理解,求n!最後非零為,先把1 n中 2 和 5 的因子的數量求出來,因為只有2和5可以構成0,接下來就要分別求出1 n中最後一位為3,7,9的數字的數量,然後相乘就可以得到n!的最後一位的數 i...

n的階乘最後乙個非0的數

哈哈 要說這個題目,中午比賽的時候1ac了 歸功於之前寫過的求大數的階乘這個演算法啊。在電腦上除錯了一會,發現求階乘的過程是一段段輸出的。就比如說10的階乘,先輸出362,然後8800,知道了這點,那麼求n的階乘最後乙個非0的數就變得很簡單了。只要加個while判斷一下,就ok了 include i...

牛客網上的最後一位

題意 牛牛選擇了乙個正整數x,然後把它寫在黑板上。然後每一天他會擦掉當前數字的最後一位,直到他擦掉所有數字。在整個過程中,牛牛會把所有在黑板上出現過的數字記錄下來,然後求出他們的總和sum.例如x 509,在黑板上出現過的數字依次是509,50,5,他們的和就是564.牛牛現在給出乙個sum,牛牛想...