1528 - N阶楼梯上楼问题
时间限制 : 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); } } }