#include <iostream>
using namespace std;
int main()
{
long int a;
while(cin>>a)
{ int s=0,b=5;
for(int i=1;(a/b)!=0;i++)
{ s+=(a/b);
b*=5;}
cout<<s<<"\n";
}
return 0;
}
我覺得已經很簡便了啊
爲何還是超過時間呢?
有請高手!
沒做過這題 不過直覺是這樣:
N!=1*2*....*N
找出1*2*....*N其中可以配出幾組10就是答案了
EX: 15! 有 1*10 2*5 4*15 所以答案是3
#include <stdio.h>
main()
{int n;
while(scanf("%d",&n)!=EOF)
{
int i,t=0;
for(i=5;i<=n;i=i+5)
{if(i%5==0) t++;
if(i%25==0) t++;}
printf("%d\n",t);
}
return 0; }
我也是很簡短,
可是也是 超過時間?!
為什麼呢? 悶ˊˋ!
#include
main()
{int n;
while(scanf("%d",&n)!=EOF)
{
int i,t=0;
for(i=5;i<=n;i=i+5)
{if(i%5==0) t++;
if(i%25==0) t++;}
printf("%d\n",t);
}
return 0; }
我也是很簡短,
可是也是 超過時間?!
為什麼呢? 悶ˊˋ!
如果125, 625.....呢?
必須對所有5的次方做處理
請用陣列儲存
一直除五....
相加
不用什麼陣列