1528 - N阶楼梯上楼问题

通过次数

0

提交次数

0

时间限制 : 1 秒 内存限制 : 32 MB

N阶楼梯上楼问题:一次可以走两阶或一阶,问有多少种上楼方式。(要求采用非递归)

题目输入

输入包括一个整数N,(1<=N<90)。

题目输出

可能有多组测试数据,对于每组数据,

输出当楼梯阶数是N时的上楼方式个数。

输入/输出样例

输入格式

6

输出格式

13

C语言解答

#include<stdio.h>
int main()
{   
    long long i,n,a[90];
    while(scanf("%lld",&n)!=EOF)
	{ 
		a[0]=1;
		a[1]=1;
		for(i=2;i<=n;i++)
			a[i]=a[i-1]+a[i-2];
		printf("%lld\n",a[n]);
	}   
  return 0;
}


C++解答

#include<stdio.h>

int main()
{
	int n,i;
	long long a[90]={0,1,2};
	for(i=3;i<90;i++)
		a[i]=a[i-1]+a[i-2];
	while(scanf("%d",&n)!=EOF)
		printf("%lld\n",a[n]);
	return 0;
}

Java解答

public class Main {
            public static void main(String[] args) { 
              java.util.Scanner in= new java.util.Scanner(System.in) ;
            while(in.hasNextLong()){
            long n =in.nextLong();
              long f0=1;
              long f1=2;
              for(int i=0;i<n-2;i++){
                long a=f1;
                f1=f0+f1;
                f0=a;
              }
              if(n==1) System.out.println(f0);
              else System.out.println(f1);
            }
            }
}