首页 > ACM题库 > 九度OJ > 九度-1205-N阶楼梯上楼问题[解题代码]
2013
12-13

九度-1205-N阶楼梯上楼问题[解题代码]

题目来源:2008年华中科技大学计算机保研机试真题

题目描述:

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

输入:

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

输出:

可能有多组测试数据,对于每组数据,
输出当楼梯阶数是N时的上楼方式个数。

样例输入:
4
样例输出:
5

java 代码如下:
import java.util.Scanner;


public class Main{

	
	public static void main(String[] args) {
		Scanner s = new Scanner(System.in);
		while(s.hasNextInt()){
			int n = s.nextInt();
			if(n>=1 && n<90)
				System.out.println(_f(n));
		}
		
	}
	
	static long _f(int n){
		if( n==1 )
			return 1;
		if( n==2)
			return 2;
		long a = 1;
		long b = 2;
		long num = 0;
		for(int i=3; i<=n; i++){
			num = a+b;
			a = b;
			b = num;
		}
		return num;
	}
	
//	static int f(int n){
//		if( n==1 )
//			return 1;
//		if( n==2)
//			return 2;
//		return f(n-1)+f(n-2) ;
//	}

}

/**************************************************************
	Problem: 1205
	User: coder
	Language: Java
	Result: Accepted
	Time:180 ms
	Memory:17124 kb
****************************************************************/