`
xfjt297857539
  • 浏览: 146642 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

求N!中末尾有几个0(转)

    博客分类:
  • C
 
阅读更多

求N!中末尾有几个0:

计算含因子2和5的对数
1。。.N有几个2:
N/2+N/4+N/8。。。。。
1....N有几个5:
N/5+N/25+N/125。。。。。。


#include <stdio.h>
#include <stdlib.h>

int count(int n,int bot)
{
    int cnt=0;

    while(n/bot!=0)
    {
        cnt+=n/bot;
        bot*=bot;
    }

    return cnt;
}

int main()
{
    int n,cnt2,cnt5;

    scanf("%d",&n);

    cnt2=count(n,2);
    cnt5=count(n,5);

    unsigned long long sum=1;

    for(unsigned int i=n;i>=1;--i)
    {    
        sum*=i;
    }

    fprintf(stdout,"n!=%llu\n",sum);

    fprintf(stdout,"zero counts:%d\n",cnt2<cnt5 ? cnt2:cnt5);

    return 0;
}
分享到:
评论

相关推荐

    判断阶乘末尾有几个零

    判断阶乘末尾有几个零 阶乘 不计算阶乘 不计算阶乘

    java阶乘计算获得结果末尾0的个数代码实现

    今天偶然看到一个要求,求1000~10000之间的数n的阶乘并计算所得的数n!末尾有多少个0?要求: 不计算 只要得到末尾有多少个0就可以了,看下面的代码吧

    n的阶乘问题--阶乘位数--阶乘末尾0的个数

    NULL 博文链接:https://z-jls03.iteye.com/blog/830994

    C语言程序设计标准教程

    第四行的输出语句格式控制串中,两格式串%d 之间加了一个空格(非格式字符),所以输出的a,b值之间有一个空格。第五行的printf语句格式控制串中加入的是非格式字符逗号, 因此输出的a,b值之间加了一个逗号。第六行的...

    浪潮2013内部研发人员比武大赛试题

    下面给出一种三角形数阵(你可能没见过),这种数阵是由一个有序三元组(S,T,N)决定的,其中S,T,N是三个正整数,观察下面几个样例: 三元组(S,T,N) (1 , 4 , 6) ( 3 , 5 , 8 ) ( 4 , 7 , 9 ) 三角形数阵 ...

    PHP读取大文件末尾N行的高效方法推荐

    这里需要用到文件指针,学过C的应该知道指针式个嘛玩意,通俗的讲吧,PHP中通过fopen打开一个文件,这时候还没有读取文件,这时候指向的是文件开头,指针位置也就是0,当你通过fgets或者fgetc从文件中读取内容的时候...

    Editplus 3[1].0

    因为这几个字符在行中也是出现的,所以肯定不能用简单的替换实现 比如 12345 1265345 2345 需要删除每行末尾的“345” 这个也算正则表达式的用法,其实仔细看正则表达式应该比较简单,不过既然有这个问题提出,说明对...

    算法实习基因拼接

    也就是说,一个基因被分成几个编码片段(称为外显子)。虽然在蛋白质的合成过程中,外显子的顺序是固定的,但是外显子的数量和长度可以是任意的。 大多数基因识别算法分为两步:第一步,寻找可能的外显子;第二步,...

    LINGO软件的学习

    LINGO是用来求解线性和非线性优化问题的简易工具。LINGO内置了一种建立最优化模型的语言,可以简便地表达大规模问题,利用LINGO高效的求解器可快速求解并分析结果。...一个对象列中至多有一个集名,而属性...

    正则表达式

    \ 做为转意,即通常在"\"后面的字符不按原来意义解释,如/b/匹配字符"b",当b前面加了反斜杆后/\b/,转意为匹配一个单词的边界。 -或- 对正则表达式功能字符的还原,如"*"匹配它前面元字符0次或多次,/a*/将匹配a,...

    13.第十三章 文件.txt

    对于fgetc函数的使用有几点说明: (1)在fgetc函数调用中,读取的文件必须是以读或读写方式打开的。 (2)文件内部有一个位置指针,用来指向文件的当前读写字节,文件打开时,位置指针总指向文件的第一个字节。...

    editplus 代码编辑器html c++ jsp css

    因为这几个字符在行中也是出现的,所以肯定不能用简单的替换实现 比如 12345 1265345 2345 需要删除每行末尾的“345” 这个也算正则表达式的用法,其实仔细看正则表达式应该比较简单,不过既然有这个问题提出,说明对...

    蜂鸣器播放音乐实例硬件仿真

    末尾:0,0 表示结束(Important) 音高由三位数字组成: 个位是表示 1~7 这七个音符 十位是表示音符所在的音区:1-低音,2-中音,3-高音; 百位表示这个音符是否要升半音: 0-不升,1-升半音。 音长最多由...

    《数据结构 1800题》

    2. 数据元素之间的关系在计算机中有几种表示方法?各有什么特点?【燕山大学1999 二、2(4分)】 3. 数据类型和抽象数据类型是如何定义的。二者有何相同和不同之处,抽象数据类型的主要特点是什么? 使用抽象数据...

    leetcode答案-hello-algo:算法训练,ContinueFighting

    数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。 请找出数组中任意一个重复的数字。 使用辅助集合 (时间复杂度:O(n) , 空间复杂度:O(n) ) 利用输入数组的元素范围在0 ~ n-1的...

    Linux常用的命令。。。。。

    cut –d:(:为指定通配符,:可以另外改) –f1(1为通配符前第几个,可以改) file wc 统计单词,行数 sort 排序 command1| command2 command1的输出是command2的输入 DNS全球通用的: 8.8.8.8 DHCP :动态分配IP地址...

    javascript入门笔记

    特点 :将 a 和 b 转换为 二进制,按位比较,对应位置的数字,至少有一位为1的话,那么该为的整体结果就为1,否则为 0 ex : 5 | 3 101 011 ======== 111 结果为 :7 适用场合:任何小数与0 做 按位或的操作...

    EditPlus 2整理信箱的工具

    因为这几个字符在行中也是出现的,所以肯定不能用简单的替换实现 比如 12345 1265345 2345 需要删除每行末尾的“345” 这个也算正则表达式的用法,其实仔细看正则表达式应该比较简单,不过既然有这个问题提出,说明对...

Global site tag (gtag.js) - Google Analytics