實驗06 遞迴程式設計(2020級)

2021-10-11 20:26:19 字數 3829 閱讀 7711

題目編號:exp06-basic01,gjbook3-10-02

題目名稱:排列組合

問題描述:編寫程式求函式c(m,n)的值。

輸入:從鍵盤隨機輸入乙個自然數和乙個非負整數,分別作為m和n的值(m≥n)。

輸出:函式c(m,n)的值。

樣例1:

輸入:4 1

輸出:樣例2:

輸入:6 2

輸出:15

#include

intc

(int m,

int n)

intmain()

題目編號:exp06-basic02,gjbook3-10-03

題目名稱:hermite多項式

題目描述:編寫程式,用遞迴方法求解hermite 多項式值。hermite 多項式定義如下。

輸入:從鍵盤隨機輸入乙個非負整數和乙個實數,作為n和x的值。

輸出:hn(x)的值,精確到小數點後2位。

樣例1:

輸入:0 1.5

輸出:1.00

樣例2:

輸入:2 2.4

輸出:21.04

#include

floath(

int n,

float x)

intmain()

題目編號:exp06-basic03,gjbook3-10-04

題目名稱:ackerman函式

問題描述:編寫程式,計算 ackerman 函式值。ackerman 函式定義如下

輸入:從鍵盤隨機輸入兩個非負整數,分別作為m和n的值。

輸出:ack(m, n)的值。

樣例1:輸入 2 3 輸出 9

樣例2:輸入 3 2 輸出 29

樣例3:輸入 0 3 輸出 4

#include

intack

(int m,

int n)

intmain()

題目編號 :exp06-basic04

題目名稱:最大公因數

題目描述:編寫程式,用遞迴方法求解m、n最大公約數。對正整數u和v 可以採用歐幾里德輾轉相除演算法求它們的最大公因數,具體過程如下:

u% v → r1

v % r1 → r2

r1% r2 → r3

r2 % r3 → r4

rn-1% rn → rn+1=0

當餘數rn+1=0時,計算過程結束,rn 為正整數u 、v的最大公因數。

輸入:從鍵盤隨機輸入兩個正整數m和n。輸出:最大公因數。

樣例1:

輸入:12 15

輸出:3

樣例2:

輸入:28 49

輸出:7

#include

intmaxcommonfactor

(int m,

int n)

intmain()

題目編號:exp06-basic05,gjbook3-10-06

題目名稱:順序檢索

題目描述:編寫程式,用遞迴方法在整數組中進行順序檢索。

輸入:第一行輸入乙個正整數n(0第二行依次輸入n個整數,作為陣列的元素;

第三行輸入待檢索的關鍵字。

輸出:如果陣列中含有關鍵字,則輸出其首次出現的位置(下標值較小的位置)否則輸出null。

樣例1:

輸入:8

0 2 3 4 5 9 10 8

3輸出:

2樣例2:

輸入:8

0 2 3 4 5 9 10 8

6輸出:

null

#include

int n,a[

101]

;int

*p=a;

intindex

(int

*pa,

int target,

int n)

else

return-1

;}intmain()

題目編號:exp06-enhance01,gjbook3-10-05

題目名稱:最大元素

題目描述:編寫程式,用遞迴方法求解長度為n的整型陣列中最大元素值。

輸入:第一行輸入乙個正整數n(0輸出:最大元素的值。

樣例1:

輸入:10

9 8 7 6 5 4 3 2 1 0

輸出:9

樣例2:

輸入:10

0 1 2 3 4 5 6 7 8 9

輸出:9

#include

int n,a[

101]

;int

maxnumber

(int a,

int b)

intmax

(int

*pa,

int n)

else

return a[n-1]

;}intmain()

題目編號:exp06-enhance02

題目名稱:陣列反序

題目描述:編寫程式,用遞迴方法反序陣列。

輸入:第一行輸入乙個正整數n(0輸出:順次輸出逆序後陣列中元素,元素間以乙個西文空格間隔,最後乙個元素後無字元。

樣例1:

輸入:8

0 2 3 4 5 9 10 8

輸出:8 10 9 5 4 3 2 0

樣例2:

輸入:5

0 2 3 3 5

輸出:5 3 3 2 0

#include

int n,a[

101]

;int n;

void

reverse

(int

*pa)

}int

main()

題目編號 :exp06-enhance03

題目名稱:截木條

題目描述:

給定乙個長度為n的木條,將其在大致2/5的位置截斷,得到2個長度仍為整數的木條;如果新得到的木條的長度仍舊超過規定長度k,將繼續按照上述方法處理得到的木條,直到所有木條的長度都不大於k。

編寫程式,用遞迴方法計算乙個長度為n的木條,當規定長度為k時,其經過上述截斷過程會得到多少根木條。其中:n、k均為正整數,n>10,k>3,且假設木條截斷所得短木條長度四捨五入為正整數,長木條長度為總長減去短木條長度。

輸入:順次從鍵盤輸入兩個正整數n和k(n>10,k>3)。

輸出:木條根數。

樣例1:

輸入: 20 4

輸出: 7

樣例2:

輸入: 3 20

輸出: 1

#include

int count=1;

introunding

(float a)

intfunction

(float n,

float k)

intmain()

實驗01 順序程式設計(2020級)

題目編號 exp01 enhance02 題目名稱 時間轉換 題目描述 程式設計序,輸入午夜後的某秒數,輸出該秒的小時 分種 秒。輸入 從鍵盤輸入秒數。輸出 秒數轉換後的小時 分種 秒,其中小時 分鐘 秒都都是兩位整數,數字不足用零補充。樣例1 輸入 50000 輸出 13 53 20 樣例2 輸入...

BFU 2020級程式設計基礎 實驗題整理

目錄 實驗一實驗二 實驗三實驗四 1.編寫程式,實現如下功能 求 思考 注意分數之前的符號,什麼時候為正什麼時候為負?2.編寫程式,實現如下功能 求出200到300之間的數,且滿足條件 它們三個數字之積為42,三個數字之和為12。思考 如何求出乙個三位數的百位 十位和個位?思路 1.該程式通過for...

程式設計與演算法(三)第06周測驗 2020春季

輸入無輸出 d fun b fun d fun nbval 2 nbval 24 ndval 8 b fun nbval 12 樣例輸入 無樣例輸出 d fun b fun d fun nbval 2 nbval 24 ndval 8 b fun nbval 12 如下 include using ...