免費開始練習
moea_joint_essay 101年 [資訊] 資訊管理、程式設計

第 七 題

請撰寫程式,求出 N!的結果值中,從右邊算來第一個不是 0 的數字位置,例如

N 輸入 3:因為 3!=6,其右邊算來第一個不是 0 的數字位置為 1,所以輸出 1
N 輸入 5:因為 5!=120,其右邊算來第一個不是 0 的數字位置為 2,所以輸出 2
N 輸入 10:因為 10!=3628800,其右邊算來第一個不是 0 的數字位置為 3,所以輸出 3

撰寫過程,請註明您所使用的程式語言,並在適當位置加上註記。N 的 I/O 部分,可以以虛擬碼代替,其餘部分不得使用虛擬碼。 (15 分)
📝 此題為申論題

思路引導 VIP

這題要求計算 N! 後綴有幾個 0,再加 1 就是從右邊算來第一個不是 0 的數字位置。 N! 結尾 0 的數量取決於 1 到 N 中質因數 5 的數量(因為 2 的數量遠大於 5)。

🤖
AI 詳解 AI 專屬家教

本題的核心在於計算 N! 的結果尾數有幾個連續的 0。由於一個 0 產生自質因數 2 和 5 的相乘,而在 N! 中質因數 2 的數量遠多於 5,因此尾數 0 的數量完全取決於 1 到 N 中質因數 5 的總個數。算出 0 的個數後,將其加 1 即為從右邊算來第一個不是 0 的數字位置。 以下使用 C 語言進行撰寫:

▼ 還有更多解析內容

🏷️ 相關主題

物件導向程式設計與系統分析核心概念
查看更多「[資訊] 資訊管理、程式設計」的主題分類考古題