大數的階乘

2022-09-16 22:06:27 字數 726 閱讀 6224

首先要確定這個數的階乘需要開多大的陣列,可以用stirling公式。

輸入不超過10000的正整數,計算n!的具體值。

#include#include

using

namespace

std;

const

int maxn=50000

;int

main()

}for(k=maxn;k>=0;k--)

if(f[k]!=0) break

;

for(int j=k;j>=0;j--)

cout

<}

return0;

}

我們發現f[i]裡面只有1個數字,但是f[i]是int型的,能存9位數,這樣不僅速度加快,開銷也減小很多。

#include#include

using

namespace

std;

const

int maxn=20000

;int

main()

}for(k=maxn;k>=0;k--)

if(f[k]!=0) break

; cout

=0;j--)

cout

<}

return0;

}

N的階乘 大數階乘

輸入n求n的階乘的準確值。input 輸入n 1 n 10000 output 輸出n的階乘 首先,要確定n的階乘的數字大概有多少位,這樣便於我們去選擇合適的演算法。階乘 當n 10000時,上式值為35660 已經向上取整 所以接受 include include include include ...

大數的階乘

首先定義乙個足夠長的陣列。拿10000的階乘為例,最後的結果長度是35660位,所以我們定義乙個40000個成員的陣列就可以了。int result 40000 其核心思想就是把計算結果每一位上的數字儲存到乙個陣列成員中,例如 把124儲存至陣列中,儲存結果應該是 result 0 4 result...

大數的階乘

include include 乙個陣列元素表示4 個十進位制位,即陣列是萬進製的 define bigint radix 10000 define radix len 4 10000 有35660 位 define max len 35660 radix len 1 整數的最大位數 int x m...