思路:BigInteger 四杀!

简单递推,注意long会超范围

题目描述

楼梯有N阶,上楼可以一步上一阶,也可以一步上二阶。

编一个程序,计算共有多少种不同的走法。

输入输出格式

输入格式:

 

一个数字,楼梯数。

 

输出格式:

 

走的方式几种。

 

输入输出样例

输入样例#1: 复制

4

输出样例#1: 复制

5

说明

用递归会太慢,需用递推

(60% N<=50 ,100% N<=5000)

import java.math.BigInteger;
import java.util.Scanner;

public class Main{

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner in=new Scanner(System.in);
		int n=in.nextInt();
		BigInteger a[]=new BigInteger[n+1];
		a[0]=BigInteger.ZERO;
		if(n>=1)
			a[1]=BigInteger.ONE;
		if(n>=2)
			a[2]=BigInteger.valueOf(2);
		for(int i=3;i<=n;i++){
			a[i]=a[i-2].add(a[i-1]);
		}
		System.out.println(a[n]);
	}

}