藍橋杯演算法練習筆記 6 棧和遞迴

2021-10-02 22:37:06 字數 1603 閱讀 3323

0.棧的基本使用

#include

#include

using

namespace std;

intmain()

1.漢諾塔問題
//漢諾塔問題

#include

#include

using

namespace std;

/*問題分解

1.把 n-1 個盤子移動到b

2.把最大的盤子從a移動到c

3.把b上的n-1個盤子移動到c

遞迴的方法

*/ stack<

int> s[3]

;//三個柱子

void

move

(int x,

int y)

//三個引數(需要移動的柱子,中間柱,目標柱)

void

hanoi

(int a,

int b,

int c,

int n)

hanoi

(a,c,b,n-1)

;move

(a,c)

;hanoi

(b,a,c,n-1)

;}intmain()

hanoi(0

,1,2

,n);

while

(!s[2]

.empty()

)return0;

}/*輸入:3

輸出:

0 --> 2

0 --> 1

2 --> 1

0 --> 2

1 --> 0

1 --> 2

0 --> 2

1 2 3

*/

2.漢諾塔問題2

小明在玩漢諾塔,假設第一根柱子上從上到下放在大小為1~n的盤子,小明每次移動大小為i的盤子時消耗的體力為i,求他移動盤子的步數,和總共消耗的體力。

}/*輸入:3

輸出:7 11

*/3.輾轉相除法

//輾轉相除法___求最大公約數

/*f(x,y) = f(y,x%y) y>0

x y=0 */

#include

using

namespace std;

intf

(int x,

int y)

else

}int

main()

藍橋杯java練習 遞迴演算法細菌增值

假設有兩種微生物x 和 y x 出生後每隔 3分鐘 一次 數目加倍 y出生後每隔 2分鐘 一次 數目加倍 乙個新出生的 x,半分鐘之後吃掉1個 y,並且,從此開始,每隔 1分鐘吃1個 y。現在已知有新出生的 x 10,y 89 求60 分鐘後y 的數目。如果 x 10 y 90呢?本題的要求就是寫出...

藍橋杯練習 演算法訓練

演算法訓練 審美課 時間限制 1.0s 記憶體限制 256.0mb 問題描述 審美的歷程 課上有n位學生,帥老師展示了m幅畫,其中有些是梵谷的作品,另外的都出自五歲小朋友之手。老師請同學們分辨哪些畫的作者是梵谷,但是老師自己並沒有答案,因為這些畫看上去都像是小朋友畫的 老師只想知道,有多少對同學給出...

藍橋杯 基礎練習 Sine之舞 遞迴

時間限制 1.0s 記憶體限制 512.0mb 問題描述 最近fj為他的奶牛們開設了數學分析課,fj知道若要學好這門課,必須有乙個好的三角函式基本功。所以他準備和奶牛們做乙個 sine之舞 的遊戲,寓教於樂,提高奶牛們的計算能力。不妨設an sin 1 sin 2 sin 3 sin 4 sin n...