跳台阶问题

题目:一个台阶总共有n级,如果一次可以跳1级,也可以跳2级。求总共有多少总跳法。

f(n)=f(n-1)+f(n-2),变成求费伯纳西数列

//跳台阶

#include<iostream>

using namespace std;

int step_two(int num_of_stair){

	int before=1;

	int after=2;

	int total;

	if(num_of_stair==1) return 1;

	else if(num_of_stair==2) return 2;

	else{

			for(int i=3;i<=num_of_stair;i++){

				total=before+after;

				before=after;

				after=total;

			}

			return total;

	}

}

int main(void){

	int num;

	cin>>num;

	cout<<step_two(num)<<endl;

	system("pause");

	return 0;

}

你可能感兴趣的:(问题)