題目連結: 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; | |
} | |
} |