日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發(fā)布時間:2025/5/22 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C语言之计算大数阶乘,如计算100!和1000!等~~~ 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一個正整數的階乘(英語:factorial)是所有小于及等于該數的正整數的積,并且定義0的階乘為1。自然數n的階乘寫作n!。即n!=1×2×3×…×n。階乘亦可以遞歸方式定義:0!=1,n!=(n-1)!×n。

下面直接上源碼,如計算1000!:

#include <stdio.h>// 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<=n; i++){for(int j=len-1; j>=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<=1000; i++){// 計算階乘int ret = factorial(i);// 計算失敗if(ret == 1){printf("Error! Tooooooo long!!\n");break;}// 打印階乘結果printf("%d! = ", i);for(int j=len-1; j>=0; j--)printf("%d", result[j]);printf("\n");}return 0; }

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

總結

以上是生活随笔為你收集整理的C语言之计算大数阶乘,如计算100!和1000!等~~~的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。