基礎程式設計題目集 6-10 階乘計算公升級版 (20分)
本題要求實現乙個列印非負整數階乘的函式。
函式介面定義:
void print_factorial (
const
int n )
;
其中n是使用者傳入的引數,其值不超過1000。如果n是非負整數,則該函式必須在一行中列印出n!的值,否則列印「invalid input」。
裁判測試程式樣例:
#include
void print_factorial (
const
int n )
;int
main()
/* 你的**將被嵌在這裡 */
輸入樣例:
15
輸出樣例:
1307674368000
演算法:
這道題是很久以前c語言老師提過思路的題,今天才實現【參考了好幾位博主的】
1000!有2568位,long型別只能夠在25階乘範圍內給出精確的答案
定義乙個陣列,陣列每乙個元素儲存一位,也就是a[0]儲存個位,a[1]儲存十位…
**如下:
void print_factorial (
const
int n )
; ans[0]
=1;int t=
0,tmp=
0,carry=0;
//t:資料的位數 ,carry:進製的數,比如5*6=30,3就是要往上進的數carry
int i,j;
for(i=
1;i<=n;i++
)while
(carry)
}for
(i=t;i>=
0;i--)}
}
6 10 階乘計算公升級版 20 分
本題要求實現乙個列印非負整數階乘的函式。函式介面定義 void print factorial const int n 其中n是使用者傳入的引數,其值不超過1000。如果n是非負整數,則該函式必須在一行中列印出n 的值,否則列印 invalid input 裁判測試程式樣例 include void...
6 10 階乘計算公升級版 20 分
本題要求實現乙個列印非負整數階乘的函式。函式介面定義 void print factorial const int n 其中n是使用者傳入的引數,其值不超過1000。如果n是非負整數,則該函式必須在一行中列印出n 的值,否則列印 invalid input 裁判測試程式樣例 include void...
6 10 階乘計算公升級版 20分
void print factorial int n if n 0 以上是兩個例外情況 int r 3000 用於存放結果 r 0 1 for int i 1 i 3000 i 將陣列初始化為 1,方便判斷邊界 int t 1,i t代表結果的位數,一開始是1 for int j n j 1 j i...