题目描述
N阶楼梯上楼问题:一次可以走两阶或一阶,问有多少种上楼方式。(要求采用非递归)
输入描述:
输入包括一个整数N,(1<=N<90)。
输出描述:
可能有多组测试数据,对于每组数据,
输出当楼梯阶数是N时的上楼方式个数。
示例1
输入
复制
4
输出
复制
5
这里没有用大数处理,但最好还是用大数处理,因为到46会超出int类型范围
import java.util.*;
import java.io.*;
import java.text.* ;
public class Main
{
public static void main(String[] args){
try {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str;
while((str=br.readLine()) != null) {
int n = Integer.parseInt(str);
if(n == 1) System.out.println("1");
else if(n == 2) System.out.println("2");
int a1 = 1;
int a2 = 2;
for(int i = 3; i <= n; i++) {
int tmp = a2;
a2 = a2+a1;
a1 = tmp;
}
if(n > 2) System.out.println(a2);
}
} catch(IOException e){
e.printStackTrace();
}
}
}