N的階乘 大數階乘

2021-10-06 00:21:50 字數 1144 閱讀 4007

輸入n求n的階乘的準確值。

input

輸入n(1 <= n <= 10000)

output

輸出n的階乘

首先,要確定n的階乘的數字大概有多少位,這樣便於我們去選擇合適的演算法。

階乘:當n==10000時,上式值為35660(已經向上取整)。

所以接受

#include #include #include #include #include #include #include #include #include #include #include #include #include //#include //#include #define lowbit(x) ( x&(-x) )

#define pi 3.141592653589793

#define e 2.718281828459045

#define eps 1e-8

#define inf 0x3f3f3f3f

#define half (l + r)>>1

#define lsn rt<<1

#define rsn rt<<1|1

#define lson lsn, l, mid

#define rson rsn, mid+1, r

#define ql lson, ql, qr

#define qr rson, ql, qr

#define myself rt, l, r

#define mp(x, y) make_pair(x, y)

using namespace std;

typedef unsigned long long ull;

typedef unsigned int uit;

typedef long long ll;

const ull mod = 1e9;

int n, op;

vectora;

int len = 1;

void solve()

tmp = a[j] / mod;

a[j + 1] += tmp;

a[j] -= tmp * mod;}}

}}int main()

return 0;

}

N (大數階乘)

given an integer n 0 n 10000 your task is to calculate n input one n in one line,process to the end of file.output for each n,output n in one line.sam...

大數n的階乘

求算n 對於比較小的n,求其階乘的時候可以用遞迴解決。但是如果n很大的時候,比如1000,那麼n 肯定超出整形資料所能表示的範圍。因此必須採用其它方法解決,通常解決大數運算資料超出範圍的問題時採用陣列去模擬。其實求算n 可以看成是每次兩個整數相乘的過程,因此可以模擬成大數相乘的過程。只是需要增加一些...

N的階乘 大數運算

題目位址 description given an integer n 0 n 10000 your task is to calculate n one n in one line,process to the end of file.for each n,output n in one line...