zoukankan      html  css  js  c++  java
  • 剑指offer-斐波那契数列

    题目描述

    大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。

    分析

     改进方法:时间复杂度O(n)

    public class Test {
        public static void main(String[] args) {
    
            System.out.println(Test.Fibonacci(36));
        }
        /**
         * 首先根据f(0)和f(1)计算f(2),再根据f(1)和f(2)计算f(3)....依次类推计算f(n).
         * @param n 第n项
         * @return  
         */
        public static int Fibonacci(int n) {
            // 斐波那契前两项
            int[] result  = {0, 1};
            if(n < 2) {
                return result[n];
            }
            
            int fibOne = 0;   // 记录第n-2的Fibonacci数的值  
            int fibTwo = 1;      // 记录第n-1的Fibonacci数的值      
            int fibN = 0;     // 记录第n的Fibonacci数的值  
            for(int i=2; i<=n; i++) {
                fibN = fibOne + fibTwo;
                fibOne = fibTwo;
                fibTwo = fibN;
            }
            return fibN;
            
        }
    }
  • 相关阅读:
    Elasticsearch 结构化搜索
    KMP 算法
    ElasticSearch 配置
    C++ 入门
    Spark 基础操作
    HBase 与 MapReduce 集成
    iOS面试相关
    iOS开发值得学习的Demo
    Mac系统安装MyEclipse
    linux安装tomcat
  • 原文地址:https://www.cnblogs.com/zywu/p/5766470.html
Copyright © 2011-2022 走看看