黑马程序员技术交流社区

标题: 用C语言求出n!的尾数有多少个0 [打印本页]

作者: 陈昭燊    时间: 2015-10-17 22:20
标题: 用C语言求出n!的尾数有多少个0
本帖最后由 陈昭燊 于 2015-10-18 21:51 编辑

问题描述:
              利用C语言求出n!的尾数有多少个0,n可以很大,如大于10000;
分析:
              0的个数是由2和5决定的(2*5=10),2的倍数币5的倍数个数多,所以n!尾数0的个数由因子5的个数决定。
如:
              3000!的尾数0的个数为:
              3000/5=600;
              3000/25=120;
              3000/125=24;
              3000/625=4;
              600+120+24+4=748;
           所以3000!的尾数有748个0;
代码如下:
  1. #include <stdio.h>
  2. int main()
  3. {
  4.     int sum=0;
  5.     int n,N;
  6.     scanf("%d",&n);
  7.     N=n;
  8.     for(n;n>5;n=n/5)
  9.         {
  10.              sum=sum+n/5;
  11.          }
  12.     printf("%d!的尾数有%d个0!\n",N,sum);
  13.     return 0;
  14. }
复制代码




作者: 杨忠磊    时间: 2015-10-17 22:33
可以的,小伙子,复习到这么远
作者: Brisingr    时间: 2015-10-18 10:57
请问楼主怎么把代码贴成这种格式的?
作者: 卫博生    时间: 2015-10-18 11:37
在printf语句中的变量N最后已经是余数啦,所以在这里就已经不能使用啦,所以可以修改为
作者: 卫博生    时间: 2015-10-18 11:38
代码提交失败,不知为何,其实在前面增加一个变量保存一下n的值,然后再printf中使用替换掉n就行
作者: 陈昭燊    时间: 2015-10-18 21:39
Brisingr 发表于 2015-10-18 10:57
请问楼主怎么把代码贴成这种格式的?

发帖的地方有个“<>"的东西,点击会出个框,把代码敲进去就可以了
作者: 陈昭燊    时间: 2015-10-18 21:42
卫博生 发表于 2015-10-18 11:38
代码提交失败,不知为何,其实在前面增加一个变量保存一下n的值,然后再printf中使用替换掉n就行 ...

谢谢提醒,n的值已经改变,我把代码改改
作者: 小小鑫    时间: 2015-10-18 21:46
怎么把代码贴出来的,,求指教!
作者: shengping110    时间: 2015-10-18 21:49
可以   不错的  加油
作者: 陈昭燊    时间: 2015-10-18 21:54
小小鑫 发表于 2015-10-18 21:46
怎么把代码贴出来的,,求指教!

表情旁边有个<>符号的东西,把代码敲进去就是这样的格式了
作者: 小小鑫    时间: 2015-10-18 22:01
要洗,,三克油!
作者: Brisingr    时间: 2015-10-19 12:36
陈昭燊 发表于 2015-10-18 21:39
发帖的地方有个“"的东西,点击会出个框,把代码敲进去就可以了

学习了!谢谢楼主




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2