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

    题目链接斐波那契数列

    题意:大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。n<=39

    题解:这里用的递推以及黄金分割公式。。我不会用java写矩阵快速幂。可以参见我前面的矩阵快速幂题解。

    代码:

     1 public class Solution {
     2     public int Fibonacci(int n) {
     3         if(n == 0){
     4             return 0;
     5         }
     6         else if(n == 1){
     7             return 1;
     8         }
     9         else{
    10             int f0 = 0;
    11             int f1 = 1;
    12             int fn = f1+f0;
    13             for(int i = 2 ; i <=n ;i++){
    14                 fn = f1+f0;
    15                 f0 = f1;
    16                 f1 = fn;
    17             }
    18             return fn;
    19         }
    20     }
    21 }
    22 
    23 
    24 
    25 OR
    26 
    27 
    28 
    29 public class Solution {
    30     public int Fibonacci(int n) {
    31         if(n == 0){
    32             return 0;
    33         }
    34         else if(n == 1){
    35             return 1;
    36         }
    37         else{
    38             double k = Math.sqrt(5.0);
    39             double a = (1 + k) / 2;
    40             double b = (1 - k) / 2;
    41 
    42             int ans = (int)(1.0 / k * (Math.pow(a, n)- Math.pow(b, n)));
    43             return ans;
    44         }
    45     }
    46 }

    跳台阶,变态跳台阶,矩形覆盖同此题

  • 相关阅读:
    Map
    Collection接口之Set
    Collection接口之List、泛型
    简介
    递归
    File类
    转换流InputStreamReader、OutputStreamWriter
    springmvc
    集合
    SpringCloud学习笔记
  • 原文地址:https://www.cnblogs.com/Asumi/p/10473974.html
Copyright © 2011-2022 走看看