爬楼梯
题目描述
树老师爬楼梯,他可以每次走1级或者2级,输入楼梯的级数,求不同的走法数 例如:楼梯一共有3级,他可以每次都走一级,或者第一次走一级,
第二次走两级 也可以第一次走两级,第二次走一级,一共3种方法。
输入格式
输入包含若干行,每行包含一个正整数N,代表楼梯级数,1 <= N <= 30。
输出格式
不同的走法数,每一行输入对应一行输出。
输入数据 1
5
8
10
输出数据 1
8
34
89
思路
这题可以用递归,其实与斐波那契数列差不多,先列式子,在解答。
代码
#include <bits/stdc++.h>
#define N 1000010
using namespace std;
int calculate(int n)//主函数
{
if(n==1)
return 1;
if(n==2)
return 2;
return calculate(n-1)+calculate(n-2);//递归
}
int main()
{
int n;
while(scanf("%d",&n)!=EOF)//无限输入
cout<<calculate(n)<<endl;//输出
return 0;
}
以上就是今天内容,更多请见官网:ylkj.mysxl.cn