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個數,為輸入矩陣...