题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
解题思路:f(n)=f(n-1)+f(n-2);且0 1 2需要单独处理
1 #include <iostream> 2 using namespace std; 3 class Solution { 4 public: 5 //fn=f(n-1)+f(n-2) 6 //f1=1 f2=2 7 int jumpFloor(int number) { 8 int result[3]={0,1,2}; 9 int f1=1; 10 int f2=2; 11 int fn = 0; 12 if(number<=2) 13 return result[number]; 14 else 15 { 16 for(int i=3;i<=number;i++) 17 { 18 fn = f1 + f2; 19 f1 = f2; 20 f2 = fn; 21 } 22 } 23 return fn; 24 } 25 }; 26 int main() 27 { 28 int n; 29 while(cin>>n) 30 { 31 Solution s; 32 cout<<"跳"<<n<<"级台阶需要步数:"<<s.jumpFloor(n)<<endl; 33 } 34 return 0; 35 }
运行结果截图: