递归基础之爬楼梯

时间: 1ms        内存:64M

描述:

树老师爬楼梯,他可以每次走1级或者2级,输入楼梯的级数, 求不同的走法数
 
例如:楼梯一共有3级,他可以每次都走一级,或者第一次走一 级,第二次走两级,也可以第一次走两级,第二次走一级,一 共3种方法。

输入:

输入包含若干行,每行包含一个正整数N,代表楼梯级数,1 <= N <= 30输出不同的走法数,每一行输入对应一行

输出:

不同的走法数,每一行输入对应一行输出

示例输入:

5
8
10

示例输出:

8
34
89

提示:

参考答案(内存最优[1088]):

#include<stdio.h>
int main()
{
	int i,n,k,sum,a,b;
	while(scanf("%d",&n)!=EOF)
	{
		a=1;
		b=1;
		for(i=0;i<n;i++)
		{
			sum=a;
			a=a+b;
			b=sum;
		}
		printf("%d\n",b);
	}
}

参考答案(时间最优[0]):

#include<stdio.h>
int main()
{
    int M,N,i,j;
    long long int f[48];
    while(scanf("%d",&M)!=EOF)
    {
        f[0]=0;
        f[1]=1;
		f[2]=2;
		f[3]=3;
        for(j=4;j<=M;j++)
            f[j]=f[j-1]+f[j-2];
        printf("%lld\n",f[M]);
	}
	return 0;
}

题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。