如何用C语言实现1000的阶乘?看似一个很简单的计算,如果是Python只需要5行左右的代码,C语言实现却需要50行,因为C语言的数据位数是有限的,无法使用简单的累乘计算结果,该运算需要缜密的思维
代码如下:
#include <stdio.h>
#define MAX 10000
// 计算1000的阶乘
void Print_Factorial ( const int N );
int main(void)
{
int N;
printf("请输入想要求的阶乘:\n");
scanf("%d", &N);
Print_Factorial(N);
return 0;
}
void Print_Factorial(const int N)
{
int value[MAX] = {0}; // 存储结果
int value_size = 1; // 存储结果的位数
int carry_Bit = 0; // 存储进位的数字
value[0] = 1;
for(int num = 2; num <= N; ++num)
{
for(int i = 0; i < value_size; ++i)
{
int temp = value[i] * num + carry_Bit; // temp中存的值等于上次运算的结果乘以这次需要累乘的数加进位数字
value[i] = temp % 10; // 保留本位数据进入当前数组
carry_Bit = temp / 10; // 进位数字等于temp除以10的商
}
while(carry_Bit != 0) // 出现需要进位的数字,处理进位数字carry_Bit
{
value[value_size] = carry_Bit % 10; // carry_Bit有可能位数大于1,value数组每位只能存一位数
++value_size; // 数字位数加一
carry_Bit = carry_Bit / 10; // 再次计算下一位进位数字
}
}
// 输出
if(N >= 1)
{
printf("结果为:\n");
for(int i = value_size-1; i >= 0; --i)
{
printf("%d", value[i]);
}
printf("\n");
}
else
{
printf("Error Input\n");
}
}
演示:
以上就是“如何用c语言编写实现1000阶乘?(c语言怎么算1000的阶乘)”的详细内容,想要了解更多C语言教程欢迎持续关注编程学习网
扫码二维码 获取免费视频学习资料

- 本文固定链接: http://phpxs.com/post/9687/
- 转载请注明:转载必须在正文中标注并保留原文链接
- 扫码: 扫上方二维码获取免费视频资料
查 看2022高级编程视频教程免费获取