指尖上的记忆指尖上的记忆
首页
  • 基础
  • Laravel框架
  • Symfony框架
  • 基础
  • Gin框架
  • 基础
  • Spring框架
  • 命令
  • Nginx
  • Ai
  • Deploy
  • Docker
  • K8s
  • Micro
  • RabbitMQ
  • Mysql
  • PostgreSsql
  • Redis
  • MongoDb
  • Html
  • Js
  • 前端
  • 后端
  • Git
  • 知识扫盲
  • Golang
🌟 gitHub
首页
  • 基础
  • Laravel框架
  • Symfony框架
  • 基础
  • Gin框架
  • 基础
  • Spring框架
  • 命令
  • Nginx
  • Ai
  • Deploy
  • Docker
  • K8s
  • Micro
  • RabbitMQ
  • Mysql
  • PostgreSsql
  • Redis
  • MongoDb
  • Html
  • Js
  • 前端
  • 后端
  • Git
  • 知识扫盲
  • Golang
🌟 gitHub
<?php

/**
 * 测试类
 *
 * Created by PhpStorm.
 * User: guoshipeng
 * Date: 2022/10/20
 * Time: 10:43
 */
namespace App\Http\Controllers\Test;

use App\Http\Controllers\Controller;

class TestController extends Controller
{
    /**
     * 获取斐波拉且
     */
    public function fb(){
        dd($this->getFb(10));
//        dd($this->other(5));
//        dd($this->getDieDai(5));
    }

    /**
     * 递归调用实现-斐波拉且
     *
     * @param $n
     * @return int
     */
    private function getFb($n){
        if ($n <= 0){
            return 0;
        }

        if ($n == 1 || $n == 2){
            return 1;
        }

        return $this->getFb($n - 1) + $this->getFb($n -2);
    }

    /**
     * 迭代实现-斐波拉且
     *
     * @param $n
     * @return int
     */
    private function getDieDai($n){
        if($n<=1){
            return 1;
        }

        $sum = 2;
        $pre = 1;
        $prepare = 1;
        for($j = 2; $j <= $n; $j++){
            $total = $pre + $prepare;
            $prepare = $pre;
            $pre = $total;

            //当前最新值
            echo $total."\n";

            //所有累计和
            $sum += $total;
        }

        return $sum;
    }

    /**
     * 非递归实现-斐波拉且
     * @return mixed
     */
    private function other($n){
        $arr[0] = $arr[1] = 1;
        for($i = 2; $i < $n; $i++){
            $arr[$i] = $arr[$i - 1] + $arr[$i -2];
        }

        return $arr;
    }

}