藍橋杯老師講遞迴

2022-01-26 02:50:56 字數 2419 閱讀 8587

1

//正序列印自然數 0 -9

2 #include 3 #include 4

using

namespace

std;56

void fun(int begin,int

end)712

intmain()

1320

2122

23//

倒序列印自然數 9-0

24 #include 25 #include 26

using

namespace

std;

2728

void fun(int begin,int

end)

2935

intmain()

3643

4445

//倒序列印自然數 0 -9

46 #include 47 #include 48

using

namespace

std;

4950

void fun(int begin,int

end)

5157

intmain()

5865

6667

68//

無返回值的遞迴函式求累加和,有返回值時剛開始不會做

69 #include 70 #include 71

using

namespace

std;

7273

int sum = 0;74

void fun(int begin,int

end)

7580

81int

main()

8288

89//

剛開始沒想明白怎麼遞迴,盲目的使用全域性sum

90 #include 91 #include 92

using

namespace

std;

9394

//系統問我1 - 100和為幾?我問另乙個人2到100和是幾,然後用他的返回值加上 begin,不是1

95int fun(int begin,int

end)

96101

102int

main()

103109

110111

112//

遞迴實現串反轉

113 #include 114 #include 115

using

namespace

std;

116117

char str[50

];118

119void fun(char *p,char *q)

120130

131int

main()

132

143

1

//next_permutation會自動去重,而那個交換演算法列印出來的不是按字典序排列的

2 #include 3 #include

4 #include 5

using

namespace

std;67

intmain()

8;//

只列印四個

11do

12while(next_permutation(str,str+4

));15

while(1

);16

return0;

17 }

1

//找到相似性,設計出口 ,該演算法是藍橋杯老師講的,也不是字典序,也不可去重

2 #include 3 #include

4 #include 5

using

namespace

std;

67 vector fun(string

str)817

string str1 = str.substr(1

);18 vector x =fun(str1);

19for(i=0; i)

2026}27

return

r;28}29

30int

main()

3142

str.clear();

43 cout<<"

--------------

"<45return0;

46 }

小任務和大任務有相似性並且可以解決 ,這是最重要的,第二就是設計出口。也就是先寫遞迴主體再設計出口。

遞迴就是呼叫和自己同名的函式,可以任何時候都呼叫遞迴並且在進入遞迴的時候檢查是否繼續遞迴;或者滿足條件的話才進行遞迴

遞迴一定要有引數,否則就無法劃分子問題了

相似任務,簡單任務,出口。

藍橋杯老師說指標

1 陣列和指標互換問題 2 char 的一些特殊性 主要是 0 要佔乙個位元組 3 指標型別本質就是整數,可以無損儲存和恢復型別 4 傳遞引數的時候會損失size資訊 5 include 6 7void f int x 陣列做引數的話是被完全當做指標使用的 8 11 12int main int a...

藍橋杯 遞迴問題

深入遞推,逐級回退 遞迴問題 深搜dfs 在有條件的情況下試探各種情況 找出口 遞迴的終止條件 遞迴函式引數邊界值的界定 思想 1.src上的n 1個盤子移到medium 2.src剩下的乙個最大的盤子移到dest 3.medium上的n 1個盤子移到dest 把src最上面的乙個盤子移到dest ...

藍橋杯 遞迴 2 24

回形取數 藍橋杯 基礎練習 問題描述 回形取數就是沿矩陣的邊取數,若當前方向上無數可取或已經取過,則左轉90度。一開始位於矩陣左上角,方向向下。輸入格式 輸入第一行是兩個不超過200的正整數m,n,表示矩陣的行和列。接下來m行每行n個整數,表示這個矩陣。輸出格式 輸出只有一行,共mn個數,為輸入矩陣...