輸入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...