C语言之计算大数阶乘,如计算100!和1000!等~~~ 您所在的位置:网站首页 6的阶乘c语言怎么算 C语言之计算大数阶乘,如计算100!和1000!等~~~

C语言之计算大数阶乘,如计算100!和1000!等~~~

2024-06-10 20:22| 来源: 网络整理| 查看: 265

一个正整数的阶乘(英语:factorial)是所有小于及等于该数的正整数的积,并且定义0的阶乘为1。自然数n的阶乘写作n!。即n!=1×2×3×…×n。阶乘亦可以递归方式定义:0!=1,n!=(n-1)!×n。

下面直接上源码,如计算1000!:

#include // result数组的最大长度 #define MAX_LEN 4096 // result数组,存放阶乘结果 int result[MAX_LEN]; // result数组的有效长度 int len = 0; // factorial函数的功能是计算阶乘,结果存在result数组中 // 返回值:成功为0,失败为1 int factorial(int n) { int value = 0; // 初始化result数组及有效长度长度 result[0] = 1; len = 1; for(int i=1; i=0; j--) { value = i * result[j]; result[j] = value % 10; value = value / 10; int k = j + 1; // 考虑进位,不增加result数组长度的情况 while(value > 0 && k < len) { value = value + result[k]; result[k] = value % 10; value = value / 10; k++; } // 考虑进位,增加result数组长度的情况 while(value > 0) { result[len] = value % 10; value = value / 10; len++; if(len > MAX_LEN) { return 1; } } } } return 0; } int main(void) { for(int i=0; i=0; j--) printf("%d", result[j]); printf("\n"); } return 0; }

来源:http://www.xieyincai.com/20180921703.html



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有