A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 陈昭燊 中级黑马   /  2015-10-17 22:20  /  2747 人查看  /  11 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 陈昭燊 于 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. }
复制代码



11 个回复

倒序浏览
可以的,小伙子,复习到这么远
回复 使用道具 举报
请问楼主怎么把代码贴成这种格式的?
回复 使用道具 举报
在printf语句中的变量N最后已经是余数啦,所以在这里就已经不能使用啦,所以可以修改为
回复 使用道具 举报
代码提交失败,不知为何,其实在前面增加一个变量保存一下n的值,然后再printf中使用替换掉n就行
回复 使用道具 举报
Brisingr 发表于 2015-10-18 10:57
请问楼主怎么把代码贴成这种格式的?

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

谢谢提醒,n的值已经改变,我把代码改改
回复 使用道具 举报
怎么把代码贴出来的,,求指教!
回复 使用道具 举报
可以   不错的  加油
回复 使用道具 举报
小小鑫 发表于 2015-10-18 21:46
怎么把代码贴出来的,,求指教!

表情旁边有个<>符号的东西,把代码敲进去就是这样的格式了
回复 使用道具 举报
要洗,,三克油!
回复 使用道具 举报
陈昭燊 发表于 2015-10-18 21:39
发帖的地方有个“"的东西,点击会出个框,把代码敲进去就可以了

学习了!谢谢楼主
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马