
题目
解决代码及点评
/************************************************************************/
/*
75. 求阶乘N!。
设输入的N最大可使N!达到100位,
要求打印出全部有效数字。方法如下:用数组M[100]代表一个100位的数。
M[1]代表最高位,M[100] 代表最低位。先对M[100]置1,其余各元素置零,然后从1到N进行累乘。
同通常作乘法一样,数组M与I(1≤I≤N)相乘时,从低位数乘起,乘积大于9时进到上一位去,
然后将结果打印(从头一个不等于零的位开始)。
*/
/************************************************************************/
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
void main()
{
int M[100]={0};
M[99]=1;
for (int i=1;i<100;i++)
{int JW=0;
for (int j=99;j>=0;j--)
{
int num=M[j]*i+JW;
if (num>9)
{
M[j]=num%10;
JW=num/10;
}
else
{
M[j]=M[j]*i+JW;
JW=0;
}
}
}
int i=0;
while(M[i]==0)
i++;
while(i<100)
{
printf("%d",M[i]);
i++;
}
system("pause");
}
代码编译以及运行
由于资源上传太多,资源频道经常被锁定无法上传资源,同学们可以打开VS2013自己创建工程,步骤如下:
1)新建工程
2)选择工程
3)创建完工程如下图:
4)增加文件,右键点击项目
5)在弹出菜单里做以下选择
6)添加文件
7)拷贝代码与运行
程序运行结果
代码下载
http://download.csdn.net/detail/yincheng01/6681845
解压密码:c.itcast.cn