题意:
n的阶乘后面有多少个0?
6的阶乘 = 1*2*3*4*5*6 = 720,720后面有1个0。
Input
一个数N(1 <= N <= 10^9)
OutPut
输出0的数量
思路:
一个0只能由2*5得到。统计N!中2的个数和5的个数,取少的。即求N!中5的个数。【数论:[N/5]+[N/5^2]+[N/5^3]+[N/5^4]+....】{也自己分析也可以得出此结论}
代码:
int main(){ int n; cin >> n; ll ans=0; ll tmp=5; while(tmp<=n){ ans+=(n/tmp); tmp*=5; } print("%lld\n",ans); ret 0; }
时间: 2024-11-06 18:25:28