大家好,欢迎来到IT知识分享网。
n的阶乘后面有多少个0?
6的阶乘 = 1*2*3*4*5*6 = 720,720后面有1个0。
Input
一个数N(1 <= N <= 10^9)
Output
输出0的数量
Input示例
5
Output示例
1
一个数 n 的阶乘末尾有多少个 0 取决于从 1 到 n 的各个数的因子中 2 和 5 的个数, 而 2 的个数是远远多余 5 的个数的, 因此求出 5 的个数即可。然后呢,问题就出来了,求一个阶乘里5的·个数。
除一次是5提供的0,除两次是25提供的0……….
代码:
#include<stdio.h> int main() { int n; scanf("%d",&n); long long int sum=0; if(n<=4)sum=0; else { while(n) {2 sum+=(n/=5); // n } } printf("%lld\n",sum); return 0; }
另一种:
#include <stdio.h> #include <string.h> #include <math.h> #define maxn 1000000000 int k,n; int main() { int n; scanf("%d",&n); long long int i,cont=0,j; for( i=5,j=1;i<=n;i+=5,j++) { if(j%5==0) { int term=j; while(term%5==0) { term=term/5; cont++; } } } cont+=j-1; printf("%d\n",cont); return 0; }
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/33709.html