剑指Offer-->斐波那契数列(三种实现方法)
来源:互联网 发布:chromium浏览器 linux 编辑:程序博客网 时间:2024/05/16 23:01
最近看起了剑指Offer,有很多非常不错的题目值得思考,应该去做一下,感受编程的魅力~~(当然还是要承认自己有不足的地方,但尽量去完善每一行代码~) 废话少说,代码搞起~
import java.util.Scanner;/** * 现在要求输入一个整数n,请你输出斐波那契数列的第n项。 * 斐波那契数列,又称黄金分割数列,指的是这样一个数列 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, * 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368 */public class Fibonacci { /* 递归实现斐波那契数列有很大的弊端,在于当用树形结构来表示依赖关系时, 不难发现很多结点都是重合的,而且重复的结点会随着n的增大而急剧增加。 */ //递归实现斐波那契数列(最简单但最浪费时间的方法) public int Fibonacci1(int n){ if(n <= 0) return 0; if(n == 1) return 1; return Fibonacci1(n -2) + Fibonacci1(n - 1); } //非递归实现斐波那契数列 public int Fibonacci2(int n){ if(n == 0) return 0; int[] index = new int[n + 1]; index[0] = 0; index[1] = 1; for(int i = 2;i <= n;i++) index[i] = index[i - 2] + index[i - 1]; return index[n]; } //非递归实现斐波那契数列2 这是看到了大神的解法,反正我觉得是屌的不行不行的 =。= public int Fibonacci3(int n) { if(n == 0) return 0; int[] index = new int[2]; index[0] = index[1] = 1; for (int i = 3; i <= n; ++i) index[i % 2] += index[1 - i % 2]; return index[n % 2]; } public static void main(String args[]){ Scanner scanner = new Scanner(System.in); System.out.println("输入一个整数:"); int a = scanner.nextInt(); System.out.println("Method1斐波那契数列的第" + a + "项为:" + new Fibonacci().Fibonacci1(a)); System.out.println("Method2斐波那契数列的第" + a + "项为:" + new Fibonacci().Fibonacci2(a)); System.out.println("Method3斐波那契数列的第" + a + "项为:" + new Fibonacci().Fibonacci3(a)); }}做的时候感觉不太好实现,总有些地方觉得不对,其实只要对数组下标的寻找十分准确,这都不叫事~~而我经常就下标越界或者是指针对不上要输出的值。。。哎。。。还要多加练习~
0 0
- 剑指Offer-->斐波那契数列(三种实现方法)
- 斐波那契数列-java编程:三种方法实现斐波那契数列
- 斐波那契数列-java编程:三种方法实现斐波那契数列
- 实现斐波那契数列的三种方法
- 斐波那契数列 的三种实现方法
- 三种方法实现斐波那契数列
- 斐波那契数列实现的三种方法
- 斐波那契数列的三种实现方法
- 三种方法实现斐波那契数列
- 三种方法实现斐波那契数列
- 三种方法实现斐波那契数列
- 斐波那契数列[剑指offer]之python实现
- 【剑指Offer】JS实现 斐波那契数列
- 斐波那契数列数列的三种时间复杂度的实现方法
- 剑指offer——斐波那契数列多种方法实现
- 【剑指offer】斐波那契数列
- 剑指offer--斐波那契数列
- 剑指Offer-斐波那契数列
- 【我们都爱Paul Hegarty】斯坦福IOS8公开课个人笔记23 多MVC模式Demo的实现
- 母版页
- WorkPlanning_4
- jquery validation plugin 使用
- ___attribute__ 用法
- 剑指Offer-->斐波那契数列(三种实现方法)
- 欢迎使用CSDN-markdown编辑器
- CSU 1561-(More) Multiplication
- 【HDU】5208 Where is Bob 【DP】
- C++ 继承
- Preliminary understanding of bagging and boosting
- 电力系统软件应用
- Web 开发中很实用的10个效果【附源码下载】
- 特殊sql语句