
大整数阶乘问题的递推算法
//:===========“大整数阶乘”问题的递推算法===========
#define MAXN 1000 //数据位数
//用递推法求取整数k的阶乖,将结果放入数组array中
void pnext(int array[],int k)
{
int *temp; //动态数组[临时存储运算大整数]
int i,j,num_len = array[0],carry,t; //循环变量,长整数位数,进位标志,临时变量
if(array[0] >= MAXN)
{
printf("数据处理位数超过程序设计上限,程序将自动中断运行!\n");
exit(1);
}
temp = (int *)malloc(sizeof(int) * (num_len + 1)); //创建动态数组
for(i=1;i<=num_len;i++)
temp[i] = array[i]; //保存原始数据
for(j=1;j {
for(carry = 0,i=1;i<=num_len;i++)
{
if(i <= array[0])
t = array[i] + temp[i] + carry;
else
t = array[i] + carry; //处理位
//数据位调整
array[i] = t % 10;
carry = t / 10;
}
if(carry)
array[++num_len] = carry; //在位记录进位标志
}
free(temp);
array[0] = num_len;
}
//显示阶乖结果
void Show_Result(int array[],int base_number)
{
int i;
printf("M!=",base_number);
for(i=array[0];i>0;i--)
printf("%d",array[i]);
printf("\n\n");
}
//计算数据的阶乘
void Count_Result(int array[], int base_number)
{
int k;
array[0] = 1;
array[1] = 1;
for(k=2;k<=base_number;k++)
{
pnext(array,k);
Show_Result(array,k);
}
}
//:==========“大整数阶乘”问题的递推算法=========
正在阅读:
2016年宁夏政法干警考试成绩分数线预测04-02
2021年辽宁营口法院、检察院系统考试录用公务员面试公告07-29
四年级童话寓言:沙漠里的小红马_700字11-06
[既搞笑富有哲理的故事400字]搞笑的3岁幼儿哲理故事4篇09-26
2020湖北省黄石市总工会招聘公告09-17
2020贵州毕节市实验高级中学招聘部属师范大学公费师范生公告02-04
2020年重庆市黔江中考化学试题及答案(B卷)(Word版)11-26
2018河南中考语文作文题目及范文|2018云南德宏中考作文题目:______二三事06-02
2019山西介休市医疗集团事业单位招聘公告【10人】04-07
会计岗位述职报告怎么写04-20