C语言中如何求大数的阶乘
C语言中如何求大数的阶乘
发布时间:2022-04-01 17:53:51 来源:高防服务器网 阅读:86 作者:iii 栏目:编程语言
这篇“C语言中如何求大数的阶乘”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“C语言中如何求大数的阶乘”文章吧。
首先定义一个函数用来将运算结果存入数组
int into(int k, int x[], int * length) { int n, 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;//计算次数变化 return 0; }
完成需要使用的函数构建后,定义主函数和需要的变量及数组。
使用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> int into(int k, int x[], int * length) { int n, 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; return 0; } int main() { int x[100000]; int i, m; int p = 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"); return 0; }
以上就是关于“C语言中如何求大数的阶乘”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注高防服务器网行业资讯频道。
[微信提示:高防服务器能助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。
[图文来源于网络,不代表本站立场,如有侵权,请联系高防服务器网删除]
[