基于visual Studio2013解决C语言竞赛题之1043求末尾0个数
题目
解决代码及点评
/* 43. 求n!的末尾有多少个零。可以通过检查n!含有多少个10的因数来求它末尾零的个数。 因为10=2×5,在n!中含有2的因数显然多于含有5的因数。 一种求n!中5的因数的个数的算法如下: 1) 输入正整数n; 2) 0=>k, n=>m; 3) 若m<5,转第5步,否则执行第4步; 4) m/5(取整)=>m, k+m=>k, 转第3步; 5) 输出k(n!末尾零的个数)。 */ #include <stdio.h> #include <stdlib.h> //求n! double factorial(int n) { if (n == 0 || n == 1) { return 1.0; } else { return (double)(n * factorial(n - 1)); } } void main() { int n,num,count = 0; printf("innput n:"); scanf_s("%d",&n); //printf("%d! = %.0f\n",n,factorial(n)); for(int i = 5;i <= n;i += 5) { count++; num = i / 5; while(num % 5 == 0) { count++; num /= 5; } } printf("%d!末尾有%d个0。\n",n,count); system("pause"); }
代码编译以及运行
由于资源上传太多,资源频道经常被锁定无法上传资源,同学们可以打开VS2013自己创建工程,步骤如下:
1)新建工程
2)选择工程
3)创建完工程如下图:
4)增加文件,右键点击项目
5)在弹出菜单里做以下选择
6)添加文件
7)拷贝代码与运行
程序运行结果
代码下载
http://download.csdn.net/detail/yincheng01/6681845
解压密码:c.itcast.cn