如何用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高级编程视频教程免费获取