P1255_数楼梯(JAVA语言)
思路: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]);
}
}