題目連結: https://zerojudge.tw/ShowProblem?problemid=d122

# 解題思路

0 結尾就一定要是 10 的倍數,所以,只要尋找 n! 中有多少個十就好
但是,找十有點太難找,我們改成尋找有多少個 5 吧,因為 n! 裡 2 出現的一定比 5 多次
找法也很簡單,
n = 4 =>0
n = 5 =>1
n = 10=>2
n = 15=>3
n = 20=>4
n = 25=>5 + 1 (因為 25 的倍數有兩個 5) = 6
所以,用迴圈找把所有 n/5 的值都累加起來,n 再除 5,
如果此時的 n 值還是超越 5 的話,就再重複一次

# 程式碼

#include <iostream>
using namespace std;
int main()
{
    long long int n,cnt;
    while(cin>>n)
    {
        cnt=0;
        while(n)
        {
            cnt+=n/5;
            n/=5;
        }
        cout<<cnt<<endl;
    }
}
更新於 閱讀次數

用實際行動犒賞爆肝的我😀

Zrn Ye LinePay

LinePay