题目描述
Redraiment小时候走路喜欢蹦蹦跳跳,他最喜欢在楼梯上跳来跳去。 但年幼的他一次只能走上一阶或者一下子蹦上两阶。 现在一共有N阶台阶,请你计算一下Redraiment从第0阶到第N阶共有几种走法。
输入
输入包括多组数据。 每组数据包括一行:N(1≤N≤40)。 输入以0结束
输出
对应每个输入包括一个输出。 为redraiment到达第n阶不同走法的数量。
样例输入 Copy
1 3 0
样例输出 Copy
1 3
[居然是斐波那契数列】
#include <stdio.h>
int main()
{
int a[41];
int i,n;
a[1]=1;a[2]=2;
for (i=3;i<=40;i++)
{
a[i]=a[i-2]+a[i-1];
}
while((scanf("%d",&n)==1)&&(n!=0))
printf("%d\n",a[n]);
return 0;
}
import java.util.*;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc=new Scanner(System.in);
int n;
int[] a=new int[1000];
while(sc.hasNextInt())
{
int i=2;
n=sc.nextInt();
if(n==0)
break;
else
{
a[0]=1;
a[1]=2;
for(i=2;i<n;i++)
{
a[i]=a[i-1]+a[i-2];
}
if(n<2)
System.out.println(1);
else
System.out.println(a[i-1]);
}
}
sc.close();
}
}