斐波那契数列 java实现
2015-05-24 00:00
323 查看
摘要: 斐波那契数列 java 递归方式/非递归方式
/**
* Created by 737597978 on 2015/4/13.
* 斐波那契数列第n个数的值
*/
public class Fibonacci {
/**
* 递归实现
*/
public static int getFibo(int n) {
if (n == 1 || n == 2) {
return 1;
} else {
return getFibo(n - 1) + getFibo(n - 2);
}
}
/**
*循环实现
*时间复杂度是O(n),空间复杂度是O(1)
*/
public static int getFiboCommon(int n) {
if (n == 1 || n == 2) {
return 1;
}
int pre = 1;
int prepre = 1;
int result = 0;
for (int i = 2; i < n; i++) {
result = pre + prepre;
pre = prepre;
prepre = result;
}
return result;
}
public static void main(String[] args) {
int fibo = Fibonacci.getFibo(10);
System.out.println(fibo);
int fiboCommon=Fibonacci.getFiboCommon(10);
System.out.println(fiboCommon);
}
}
/**
* Created by 737597978 on 2015/4/13.
* 斐波那契数列第n个数的值
*/
public class Fibonacci {
/**
* 递归实现
*/
public static int getFibo(int n) {
if (n == 1 || n == 2) {
return 1;
} else {
return getFibo(n - 1) + getFibo(n - 2);
}
}
/**
*循环实现
*时间复杂度是O(n),空间复杂度是O(1)
*/
public static int getFiboCommon(int n) {
if (n == 1 || n == 2) {
return 1;
}
int pre = 1;
int prepre = 1;
int result = 0;
for (int i = 2; i < n; i++) {
result = pre + prepre;
pre = prepre;
prepre = result;
}
return result;
}
public static void main(String[] args) {
int fibo = Fibonacci.getFibo(10);
System.out.println(fibo);
int fiboCommon=Fibonacci.getFiboCommon(10);
System.out.println(fiboCommon);
}
}
相关文章推荐
- Java实现斐波那契数列的四种算法
- 《Java_斐波那契数列实现方法_改进》
- Java实现斐波那契数列
- 今天了解了斐波那契数列,java实现
- Java控制台实现斐波那契数列
- java实现斐波那契数列
- Java递归实现斐波那契数列【古典问题】
- 斐波那契数列(fabnacci)java实现
- JAVA实现--斐波那契数列
- java实现斐波那契数列和约瑟夫环
- 剑指offer--面试题9:斐波那契数列--Java实现
- 斐波那契数列java实现
- [算法]java实现 二分查找 斐波那契数列 静静思考
- 斐波那契数列 Java实现
- java几种方式实现斐波那契数列
- 斐波那契数列-java编程:三种方法实现斐波那契数列
- JAVA实现斐波那契数列问题(《剑指offer》)
- 斐波那契数列的非递归实现 JAVA
- java实现斐波那契数列
- 【Java】斐波那契数列(Fibonacci Sequence、兔子数列)的3种计算方法(递归实现、递归值缓存实现、循环实现、尾递归实现)