zoukankan      html  css  js  c++  java
  • 斐波那契数列


    大家都知道斐波那契数列,现在要求输入一个整数 n,请你输出斐波那契数列的第 n 项(从 0 开始,第 0 项为 0,第 1 项是 1)


    首先给出斐波那契数列的定义

    F(1) = 1,F(2) = 1, F(n) = F(n - 1) + F(n - 2)(n ≥ 3,n ∈ N*)


    解法一:递归解法

    不建议使用,如果出现大规模的测试用例,会导致栈溢出

    public class Solution {
        public int Fibonacci(int n) {
            if(n == 0) {
                return 0;
            }
            if(n == 1 || n == 2) {
                return 1;
            }
            return Fibonacci(n - 2) + Fibonacci(n - 1);
        }
    }
    

    解法二:非递归解法

    public class Solution {
        public int Fibonacci(int n) {
        	// f(1) = 1
            int preNum = 1;
            // f(2) = 0
            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;
        }
    }
    

  • 相关阅读:
    第二月 day 2,内置函数
    第二月 day3 闭包,递归
    day4 装饰器
    第二月 day1生成器
    第一个月 总结
    day 16 迭代器
    day 15 编码
    Docker常用命令
    DRF源码刨析
    django中使用qiniu作为第三方存储
  • 原文地址:https://www.cnblogs.com/Yee-Q/p/13731819.html
Copyright © 2011-2022 走看看