1. 程式人生 > >050day(遞迴思想在問題分解上的應用(爬樓梯))

050day(遞迴思想在問題分解上的應用(爬樓梯))

172210704111-陳國佳總結《2017年11月29日》【連續050天】

標題:遞迴思想在問題分解上的應用(爬樓梯);

內容:用遞迴將問題分解為規模更小的子問題進行求解;

例題:爬樓梯,樹老師爬樓梯,他可以每次走1級或者2級,輸出樓梯的級數,求不同的走法數;

輸入包含若干行,每行包含一個正整數N,代表樓梯級數,1<=N<=30;

輸出不同的走法數,每一行輸入對應一行;

解析:

n級臺階的走法=(先走一級後,n-1級臺階的走法)+(先走兩級後,n-2級臺階的走法)

f(n)=f(n-1)+f(n-2);

邊界條件:n=3,返回3;n=2,返回2;

int stairs(int n)
{
if(n==2)return 2;
if(n==1)return 1;
return stairs(n-1)+stairs(n-2);
}
int main()
{
int N;
while(cin>>N){
cout<<stairs(N)<<endl;
}
return 0;
}

明日計劃:複習;