如何用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://www.wangchenghua.com/post/9687/
- 轉載請注明:轉載必須在正文中標注并保留原文鏈接
- 掃碼: 掃上方二維碼獲取免費視頻資料
查 看2022高級編程視頻教程免費獲取