【剑指offer】7.斐波那契数列
2018-03-10 23:58
513 查看
/** *题目描述: *大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。 *n<=39 */ import java.util.ArrayList; public class Solution { //方法一:循环 public int Fibonacci(int n) { int preNum=1; int prePreNum=0; int result=0; if(n==0) return 0; if(n==1) return 1; for(int i=2;i<=n;i++){ result=preNum+prePreNum; prePreNum=preNum; preNum=result; } return result; } //方法二:递归 public int Fibonacci1(int n) { return Fibonacci1(n,0,1); } public int Fibonacci1(int n,int acc1,int acc2){ if(n==0) return 0; if(n==1) return acc2; else return Fibonacci1(n - 1, acc2, acc1 + acc2); } //尽量不用递归,如果数很大时,会很耗时 public static void main(String[] args) { Solution s=new Solution(); System.out.println(s.Fibonacci(35)); System.out.println(s.Fibonacci1(35)); } } /* Fibonacci(4) = Fibonacci(3) + Fibonacci(2); &nb 4000 sp; = Fibonacci(2) + Fibonacci(1) + Fibonacci(1) + Fibonacci(0); = Fibonacci(1) + Fibonacci(0) + Fibonacci(1) + Fibonacci(1) + Fibonacci(0); */
相关文章推荐
- [剑指Offer] 7.斐波那契数列
- 剑指offer-7.斐波那契数列
- 剑指Offer--7.斐波那契数列
- 剑指offer:斐波那契数列
- 剑指Offer-10:斐波那契数列
- 剑指offer第9题:斐波纳西数列
- 剑指offer编程题Java实现——面试题9斐波那契数列
- 斐波那契数列[剑指offer]之python实现
- 【剑指Offer面试题】 九度OJ1387:斐波那契数列
- 剑指offer-9-Python实现斐波那契(Fibonacci)数列
- 【剑指offer】面试题 10:斐波那契数列及其推广
- 【剑指Offer】面试招聘题目4:斐波那契数列
- 剑指Offer面试题:8.斐波那契数列
- [剑指Offer]11.斐波那契数列
- [九度OnlineJudge][剑指Offer]题目1387:斐波那契数列
- 剑指offer-和为s的数列
- 剑指offer——斐列那契数列(递归)
- 剑指offer-09 用两个栈来实现一个队列
- 剑指offer 连续子数的最大和
- 剑指offer45-圆圈中剩下的最后一个数