分析:從最后一步分析,能有的情況有三種情況構成,寫出如圖所示的方程
//和斐波拉契相似 int void f(int n) { //考慮出口 if(n==0) return 0;//正常思路是返回0 if(n==1) return 1;//通過自己想可以得出只有1種方式 if(n==2) return 2;//通過自己想可以得到只有2種方法 return f(n-1)+f(n-2)+f(n-3);//遞歸計算 }
但是在驗算的時候發現當n=3的時候,結果為f(2)+f(1)+f(0)=3;不符合,通過思考應該是4種,所以把n==0時返回1
驗算思路如圖所示
最終代碼:
//和斐波拉契相似 int void f(int n) { //考慮出口 if(n==0) return 1;//正常思路是返回0 if(n==1) return 1;//通過自己想可以得出只有1種方式 if(n==2) return 2;//通過自己想可以得到只有2種方法 return f(n-1)+f(n-2)+f(n-3);//遞歸計算 //但是在驗算的時候發現當n=3的時候,結果為f(2)+f(1)+f(0)=3;不符合,通過思考應該是4種,所以把n==0時返回1 }