求大数的阶乘。比如1000的阶乘。C语言里没有能够存这么大的数据类型。
来源:互联网 发布:全球网络电视在线直播 编辑:程序博客网 时间:2024/05/16 11:01
我的想法是用两个循环,
外层循环从1到n。内层循环求每个数与前面的数的乘积。
#include<stdio.h>
int main()
{
static int a[100000]; //设置一个超大数组来存储乘积结果。
int n;//要求的n的阶乘
int jw;//用来表示进位
int i,j;//控制循环
int len=1;//初始化数组长度为1
int temp;//过程变量
scanf("%d",&n);
a[1]=1;
for(i=2;i<=n;i++)//遍历。从1到n
{
jw=0;
for(j=1;j<=len;j++)//从数组的低位开始乘
{
temp=a[j]*i+jw;//变量存储结果
a[j]=temp%10;//将变量最后一位放入数组。
jw=temp/10;//表示除了最后一位需要进位的数
if(j>=len && jw!=0)
len++; //数组长度加一
}
}
for(i=len;i>=1;i--)//逆序输出数组就是结果
printf("%d",a[i]);
printf("\n");
return 0;
}
这是运行测试的结果,完全正确。
(初次写,希望多多支持)
1 0
- 求大数的阶乘。比如1000的阶乘。C语言里没有能够存这么大的数据类型。
- C语言 求一个大数的阶乘
- 求算大数(比如100)阶乘的思路
- 大数的阶乘(C语言实现)
- 大数阶乘的c语言算法心得
- 【C语言代码】大数N的阶乘!
- 求一个大数的阶乘
- 【java】求大数的阶乘
- HDU-求大数的阶乘
- java求大数的阶乘
- C语言大数乘法求1000的阶乘(九度OJ 1076)
- 大数运算_求1000的阶乘(C语言实现)
- C语言求大数阶乘
- 大数阶乘的计算方法(c++)
- C打印 大数的 阶乘
- C语言求10000的阶乘
- 求N的阶乘C语言程序
- c语言递归求n的阶乘
- ASP.NET MVC中的View
- OR1200处理器的计时器模块TT介绍
- Lucene 3.6.2入门:自定义停用词分词器和同义词分词器
- ReferenceEquals()判断两个字符串是否指向相同的内存地址
- 【c语言】冒泡排序与插入排序的实现
- 求大数的阶乘。比如1000的阶乘。C语言里没有能够存这么大的数据类型。
- Lucene 3.6.2入门:高级搜索之排序
- uva 294 - Divisors(枚举+计数)
- 布局详解
- SensorManager常见常量
- 核雕的由来
- Android入门第四篇之TableLayout (一)
- Lucene 3.6.2入门:高级搜索之普通Filter和自定义Filter
- NYOJ-1036 非洲小孩