#include <iostream>
using namespace std;
int main()
{
long long int n,x;
while(cin>>n)
{
x=0; //計數歸零
for(int j=1;j<=n;j++) //計算5的倍數有多少個
{
if(j%10==0||j%10==5) //尾數不為0或5剔除
{
int i=j;
for(;;)
{
if(i%5==0) //考慮5的次方情形
{
x++;
i/=5;
continue;
}
else
{
break;
}
}
}
else
continue;
}
cout<<x<<endl;
}
return 0;
}
麻煩大家看看吧
恕刪
會TLE的原因就是你用上了FOR LOOP
下面為解答方法~可以不看
不用FOR-LOOP來跑~只要將N 不停除5的結果作加總~就是答案
你可以試試看
恕刪
會TLE的原因就是你用上了FOR LOOP
下面為解答方法~可以不看
不用FOR-LOOP來跑~只要將N 不停除5的結果作加總~就是答案
你可以試試看
我本來也是覺得應該會是迴圈問題
但不是有設定break條件嗎?
為什麼傳上來會這樣
而且用dev-c++也不會有無窮迴圈的問題
這不關無窮迴圈的問題,只是如果我打1000000進去,你的for-loop就會由1跑到1000000,時間當然會爆掉阿!