关于斐波那契数列
一个人上台阶,每次只能上1个或两个台阶,问,有多少种情况可以上到第20个台阶?(典型的斐波那契数列)
指的是这样一个数列:1、2、3、5、8、13、21、34、……
其规律是从第3个数开始,每个数都等于它前两个数的和。
看了些博客感觉是总结出了规律但是没有说它的想法
但是关于我的一些拙见是:
我们可以这样想既然想上到n阶梯那我们一定会从(n-1)阶上去或者说要从(n-2)阶上去注意这里你是已经到了n阶存在了你的两种上来的方法那么我们就可以从无穷小上到无穷大
我们先以最多跳两个台阶为例那我们上到有选择的台阶(可以跳一下也可以跳两下)为(负无穷+2)那么我们就会在(负无穷+2)层时有选择。
所以归根结底与题意一致我们总要达到目标阶梯一直再某一层加1,或者加2(即使我们跳过了也要加上去因为这是换了一种的方法,所以说我们会一直累加前两项的)这样我们就可以推出跳3.4.5.6.7,,,,n阶的累加
前十个数的斐波那契数列
public static void main(String[] args) {
//1.定义三个变量,用来存放第一个第二第三个斐波那契数
int a1 = 1;
int a2 = 2;
int a3 ;
System.out.print("斐波那契数列前十个是:");
System.out.print(a1+","+a2);
//前两个已经跳过了所以只循环8次
for (int i = 3; i <11;i++) {
//2.根据前两个数算出第三个数
a3=a2+a1;
//3.更新第一第二个数
a1=a2;
a2=a3;
System.out.print(","+a3);
}
}
Java递归方法实现
public class Recursion {
//斐波那契数列
public int fibonacci(int num){
if(num==0||num==1){
return num;
}else {
return fibonacci(num-1)+fibonacci(num-2);
}
}
public static void main(String[] args) {
Recursion recursion=new Recursion();
int fibonacci = recursion.fibonacci(2);
System.out.println(fibonacci);
}
}