這篇筆記是對慕課上郭煒老師的c++課程自己的總結,方便日後複習
重點:將問題分解為規模更小的子問題解決
如:1.爬樓梯問題,乙個人每次走1級或2級,輸入樓梯級數求不同的走法數
n級台階走法 = 先走一級後,n-1級的台階走法 + 先走兩級後,n-2級台階走法f(n) = f(n-1) + f(n-2)
完整**:
#include
using
namespace std;
int n;
intstairs
(int n)
intmain()
return0;
}
2.放蘋果問題,將m個相同的蘋果放進n給相同的盤子裡有多少種放法
設i個蘋果放在k個盤子裡放法總數是f(i,k),則:
k > i時,f( i , k ) = f( i , i )
k <= i時,總放法=有盤子為空的放法+沒盤子為空的放法,f( i , k ) = f( i , k-1 ) + f( i-k , k )
#include
using
namespace std;
intf
(int m,
int n)
intmain()
return0;
}
c 學習筆記 16 遞迴
遞迴 能夠解決那些難以用簡單迴圈解決的問題 例如 八皇后問題,階乘 遞迴函式 呼叫自身的函式 1.階乘 0 1 1!1 n n n 1 n 1 n 1 n 2 假設函式factorial n 為求n 如果呼叫到n 0的情況,函式直接返回結果,函式知道如何求解最簡單的情形,稱之為基本情況或者 停止條件...
C 學習筆記之 過載 遞迴
string person 1 alina 注意string是引用型別 string person 2 person 1 這時候指向同乙個空間person 2 catty 這時候person 2新開了乙個新的空間,跟person 1不是乙個空間了 string本質是乙個char型別一維陣列 對cha...
C 學習筆記之 過載 遞迴
string person 1 alina 注意string是引用型別 string person 2 person 1 這時候指向同乙個空間person 2 catty 這時候person 2新開了乙個新的空間,跟person 1不是乙個空間了 string本質是乙個char型別一維陣列 對cha...