C语言中如何求大数的阶乘
这篇“C语言中如何求大数的阶乘”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“C语言中如何求大数的阶乘”文章吧。
首先定义一个函数用来将运算结果存入数组
intinto(intk,intx[],int*length){intn,temp,jw=0;//temp临时变量,jw为一次计算结果的进位for(n=0;n<=*length;n++){temp=x[n]*k+jw;x[n]=temp%10;jw=temp/10;}while(jw){x[n]=jw%10;//当有进位时存入进位jw=jw/10;n++;//数组填充长度变化}*length=n-1;//计算次数变化return0;}
完成需要使用的函数构建后,定义主函数和需要的变量及数组。
使用for语句调用函数into()完成数组填充
最后输出数组即为阶乘结果
for(i=2;i<=m;i++){into(i,x,&p);}for(i=p;i>=0;i--)printf("%d",x[i]);
完整源代码如下:
#include<stdio.h>#include<stdio.h>intinto(intk,intx[],int*length){intn,temp,jw=0;for(n=0;n<=*length;n++){temp=x[n]*k+jw;x[n]=temp%10;jw=temp/10;}while(jw){x[n]=jw%10;jw=jw/10;n++;}*length=n-1;return0;}intmain(){intx[100000];inti,m;intp=0;printf("请输入要计算的阶乘数:\n");scanf("%d",&m);x[0]=1;for(i=2;i<=m;i++){into(i,x,&p);}for(i=p;i>=0;i--)printf("%d",x[i]);system("pause");return0;}
以上就是关于“C语言中如何求大数的阶乘”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注恰卡编程网行业资讯频道。