这篇“C语言中如何求大数的阶乘”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“C语言中如何求大数的阶乘”文章吧。首先定义一个函
这篇“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语言中如何求大数的阶乘”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网其他教程频道。
--结束END--
本文标题: C语言中如何求大数的阶乘
本文链接: https://www.lsjlt.com/news/285704.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0