階層運算是很令人頭疼的,因此我們要想方設法地把它簡化。
輸入說明 :
輸入檔可能有大量的數據。
每一个輸入檔輸入一个不算很大的數n(請用 longint)。
輸出說明 :
輸出 n!的末尾零的个數。
範例輸入 :
1
2
10
範例輸出 :
0
0
2
提示 :
1!=1 末尾有0个零;
2!=2 末尾有0个零;
10!=3628800 末尾有2个零。
千萬别暴力,千萬别死算!!!!!!
程式碼:
#include <stdio.h>
#include <string.h>
int main()
{
long n,total;
while(scanf("%ld",&n)==1)
{
total = 0;
while(n > 4)
total = total + (n=n/5);
printf("%ld\n",total);
}
return 0;
}
http://zerojudge.tw/ShowProblem?problemid=d122
沒有留言:
張貼留言