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

    时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M 

    题目描述

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

    n<=39

    思路:

      首先想到的肯定是使用递归

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

     接着采用递推的方式,使用循环计算斐波那契数列

    class Solution {
    public:
        int Fibonacci(int n) {
            int fn1 = 1;
            int fn2 = 1;
            if(n <= 0)
            {
                return 0;
            }
            if(n == 1|| n ==2)
            {
                return 1;
            }
            while(n-- > 2)
            {
                fn1 = fn1 + fn2;
                fn2 = fn1 - fn2;
            }
            return fn1;
        }
    };

    后来又在网上看到了另一种解法,使用动态规划的方法来做的(但我并没有运行成功,总是说我没有初始化,但理论感觉还是行得通的,所以记录下)

    class Solution {
    public:
        int Fibonacci(int n) {
            if(n <= 1)
                return 1;
            int step[] = new int[n+1];
         int *step = new int[n+1](); step[
    0] = 0; step[1] = 1; for(int i = 2;i < n;i++) { step[i] = step[i-2] + step[i - 1]; } return step[n]; } };
  • 相关阅读:
    ASP.NET Core 3.0 WebApi中使用Swagger生成API文档简介
    $.ajax
    C#使用RabbitMQ
    WebAPI+NLog实现接口调用日志输出
    Spire.Doc组件读取与写入Word
    .net中RabbitMQ生产者/消费者
    第2课
    第1课
    详解usbmon抓取的log各字段的含义
    使用 usbmon 抓取 usb 总线上的数据
  • 原文地址:https://www.cnblogs.com/whiteBear/p/12433680.html
Copyright © 2011-2022 走看看