一本通 1172 求10000以內n的階乘

2021-10-21 14:18:54 字數 915 閱讀 5041

求10000以內n的階乘。

只有一行輸入,整數n(0<=n<=10000)。

一行,即n!的值。

4
24
10000*10000 用int 可以儲存的下,思路和大整數加法類似,邊計算邊進製,否則最後兩個樣例會超時

#include using namespace std;

#define coutint(a,b) cout << "#" << a << "==" << b << endl;

#define coutarr(a,len) for(int i = 1; i <= len; i++) cout << a[i] << " "; cout << endl;

int n;

const int maxn = 1e5 + 11;

int a[maxn];

int main(int argc, char const *ar**)

memset(a,0,sizeof(a));

a[0] = 1; //代表長度

a[1] = 1; //從下表1,開始儲存資料

for(int i = 2; i <= n; i++)else

} //處理末尾一位的進製

int k = a[0] + 1;

while(a[k] > 9)

//處理陣列長度

if(a[k] > 0) a[0] = k;

else a[0] = k-1;

//coutarr(a,a[0]);

} //輸出

for(int i = a[0]; i >= 1; i--) cout << a[i];

return 0;

}

1172 求10000以內n的階乘

1172 求10000以內n的階乘 時間限制 1000 ms 記憶體限制 65536 kb 提交數 6575 通過數 1675 題目描述 求10000以內n的階乘。輸入 只有一行輸入,整數n 0 n 10000 輸出 一行,即n 的值。輸入樣例 4 輸出樣例 24沒有優化,直接爆掉了。資訊學奧賽一本...

一本通1166 求f x,n

已知f 計算x 4.2,n 10 x 4.2,n 1 以及x 2.5,n 15 x 2.5,n 15 時f f的值。輸入x x和n n。函式值,保留兩位小數。4.2 10 3.681.看見這種乙個套著乙個還帶著詭異符號的,基本上都是函式 迴圈 遞迴嘛 的套路。話說這題一開始我沒看明白,從n怎麼變到x...

一本通1156 求 的值

根據公式 arc tanx x x x3 3 x5 5 x7 7 定義函式 arc tanx x arctanx x 求當最後一項小於10 6時10 6 的值。無 的值。保留到小數點後10 10位。1.一開始看到題一臉懵逼,過於簡單的題幹和神奇的求解公式讓人惆悵,發人深思,完全沒法做嘛。2.沒過多久...