黑马程序员技术交流社区
标题:
斐波那契数列的递归问题的三种算法
[打印本页]
作者:
王盟
时间:
2015-9-1 21:14
标题:
斐波那契数列的递归问题的三种算法
斐波那契数列:1,1,2,3,5,8,13,21
第一种算法:递归算法
public static void main(String[] args) {
System.out.println(feiBo(20));
}
public static int feiBo(int n) {
if (n == 1 || n == 2) {
return 1;
} else {
return feiBo(n - 1) + feiBo(n - 2);
}
}
第二种算法(我戏称为螃蟹走路法):
public static void main(String[] args) {
// 螃蟹走路算法
int a = 1;
int b = 1;
int c = 0;
for (int x = 3; x <= 20; x++) {// 循环从3开始,以所求的数列索引为循环结尾。
c = a + b;
a = b;
b = c;
}
System.out.println(c);// c是最终的结果
}
第三种算法(我戏称为数组地毯式推进法):
public static void main(String[] args) {
// 数组地毯式推进法
int[] arr = new int[20];
arr[0] = 1;
arr[1] = 1;
for (int x = 2; x <= arr.length - 1; x++) {
arr[x] = arr[x - 1] + arr[x - 2];
}
System.out.println(arr[19]);
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2