求10000以內n的階乘。
只有一行輸入,整數n(0<=n<=10000)。
一行,即n!的值。
4
2410000*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.沒過多久...