資訊學奧賽一本通C 語言 1173 階乘和

2021-10-04 06:46:02 字數 1788 閱讀 2128

【題目描述】

用高精度計算出s=1!+2!+3!+…+n!(n≤50),其中「!」表示階乘,例如:5!=5×4×3×2×1。

輸入正整數n,輸出計算結果s。

【輸入】

乙個正整數n。

【輸出】

計算結果s。

【輸入樣例】

5【輸出樣例】

153【源**】

方案一:

#include

#include

#include

using

namespace std;

#define size 1200

int mul[size]

;//階乘 mul[0]存放mul陣列長度

int sum[size]

;//加和 sum[0]存放sum陣列長度

void

fac(

int n)

;void

add(

int m)

;void

put(

int*rst)

;int

main()

add(num)

; cout

}void

add(

int m)

}put

(sum)

;return;}

void

fac(

int n)

while

(quo)

}// put(mul);

return;}

void

put(

int*rst )

for(

int i=rst[0]

; i>=

1; i--

)}

方案二:

#include

#include

#include

using

namespace std;

int fac[

500]

,sum[

500]

;void

set();

//初始化

void

mul(

int x)

;//高精乘函式

void

add();

//高精加函式

void

put(

int*rst )

;//輸出結果

intmain()

put(sum)

;//輸出結果

cout

}void

set(

)void

add(

)else

for(

int i=

1; i<=sum[0]

; i++)if

(sum[sum[0]

+1]>0)

}void

mul(

int x)

for(i=

1; i<=fac[0]

; i++

)while

(fac[fac[0]

+1]>0)

while

(fac[fac[0]

]>10)

}void

put(

int*rst )

for(

int i=rst[0]

; i>=

1; i--

)}

資訊學奧賽一本通(C 版)

資訊學奧賽一本通 c 版 總目錄 1.資訊學奧賽一本通 c 版 刷題 記錄 2.資訊學奧賽一本通 c 版 第一部分 c 語言 第一章 c 語言入門 3.資訊學奧賽一本通 c 版 第一部分 c 語言 第二章 順序結構程式設計 4.資訊學奧賽一本通 c 版 第一部分 c 語言 第三章 程式的控制結構 5...

資訊學奧賽一本通C 語言 1215 迷宮

題目描述 一天extense在森林裡探險的時候不小心走入了乙個迷宮,迷宮可以看成是由n n的格點組成,每個格點只有2種狀態,和 前者表示可以通行後者表示不能通行。同時當extense處在某個格點時,他只能移動到東南西北 或者說上下左右 四個方向之一的相鄰格點上,extense想要從點a走到點b,問在...

資訊學奧賽一本通C 語言 1216 紅與黑

題目描述 有一間長方形的房子,地上鋪了紅色 黑色兩種顏色的正方形瓷磚。你站在其中一塊黑色的瓷磚上,只能向相鄰的黑色瓷磚移動。請寫乙個程式,計算你總共能夠到達多少塊黑色的瓷磚。輸入 包括多個資料集合。每個資料集合的第一行是兩個整數w和h,分別表示x方向和y方向瓷磚的數量。w和h都不超過20。在接下來的...