前言
仅记录学习笔记,如有错误欢迎指正。
题目
设你正在爬楼梯。需要 n 阶你才能到达楼顶。(n为正整数),每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?示例
- 输入: 3
- 输出: 3
- 解释: 有三种方法可以爬到楼顶。
- 1 阶 + 1 阶 + 1 阶
- 1 阶 + 2 阶
- 2 阶 + 1 阶
思路
斐波那契数列! 1 2 3 5 8
解法1
//递归
public int fun(int x ){
if(x==1 || x==2){
return x;
}
return fun(x-1)+fun(x-2);
}
解法2
//循环
public int fun1(int x ){
if(x==1 || x==2){
return x;
}
int a = 1 ;
int b = 2;
int n = 0;
for(int i = 3 ;i<=x;i++){
n = a+b;
a=b;
b=n;
}
return n;
}