Q9:斐波那契数列
来源:互联网 发布:模拟别人说话声音软件 编辑:程序博客网 时间:2024/06/11 09:24
public class Q9 {
/**
* 题目:斐波那契数列
* 题目说明:写一个函数,输入n,求斐波那契数列的第n项。斐波那契数列的定义如下:
*f(n)=0;n=0
*f(n)=1;n=1
*f(n)=f(n-1)+f(n-2);n>1
* 解题思路:解决该类问题可以从两个方向进行:1)利用递归实现;但是这种方法当输入数值较大时,时间效率较低;其时间随着n呈指数增加。
* 2)利用for循环来实现,时间复杂度为O(n)级别。
*/
public static void main(String[] args) {
Q9 test=new Q9();
System.out.println(test.fibonacci1(10));
System.out.println(test.fibonacci2(10));
}
//利用递归实现
public long fibonacci1(int n){
if(n<=0){
return 0;
}
if(n==1){
return 1;
}
return fibonacci1(n-1)+fibonacci1(n-2);
}
//利用for循环实现
public long fibonacci2(int n){
int numberMin=0;
int numberMax=1;
int result=0;
if(n==numberMin){
return numberMin;
}
if(n==numberMax){
return numberMax;
}
//注意此处条件是从2开始的,包含n
for(int i=2; i<=n; i++){
/*
* 赋值过程规律:和=大数+小数;
* 小数=大数;
* 大数=和;
* */
result=numberMin+numberMax;
numberMin=numberMax;
numberMax=result;
}
return result;
}
}- Q9:斐波那契数列
- 【剑指offer】Q9:斐波那契数列
- 斐波那契数列数列计算
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 栈的压入、弹出序列
- GRACE学习系列(二)
- swiper的基础使用(十七)
- 多线程-join的应用
- arm系列cpu和嵌入式系统简单归纳
- Q9:斐波那契数列
- 一份安卓笔试题的反思改错
- Java - 散列码
- Irrlicht学习笔记(8)--SpecialFX
- swiper的基础使用(十八)
- visual studio 开发的MFC程序打包
- 理解ThreadLocal
- IOS常用宏定义
- [51nod 1201]整数划分