首页 > 其他分享 >509. 斐波那契数列

509. 斐波那契数列

时间:2023-01-04 11:34:46浏览次数:43  
标签:fib return 递归 int self 斐波 509 那契

问题描述

https://leetcode.cn/problems/fibonacci-number/description/

解题思路

最经典的递归问题,它的问题描述就是递归的。

先考虑参数和返回值。参数就是n,返回值是fib(n)的值。

然后考虑本层做什么,以及缩小规模。

根据定义,本层就是将fib(n-1)和fib(n-2)加起来。

同时,fib(n-1)和fib(n-2)的过程就是缩小规模的过程。

最后考虑递归出口。

当n==0 或者 n==1时,fib直接返回n。

代码

class Solution:
    def fib(self, n: int) -> int:
        if n < 2:
            return n
        return self.fib(n-1) + self.fib(n-2)

 

标签:fib,return,递归,int,self,斐波,509,那契
From: https://www.cnblogs.com/bjfu-vth/p/17024359.html

相关文章

  • 求第n个斐波那契数。(用递归和循环的方法对比)
    写这个代码的过程中出现的问题及改进方法:用递归实现#include<stdio.h>intFib(intn){if(n<=2)return1;elsereturnFib(n-1)+Fib(n-2);}......
  • 1、尾递归及优化 ,例:斐波那契数列 2、递归转循环,蹦床函数
    1、函数调用自身,即为递归,在return时调用自身,即为尾递归;递归非常消耗内存,其原因是需要同时保存成成百上千的调用帧,这容易发生栈溢出错误;但是尾递归只存在一个调用帧,所以永......
  • 斐波那契公约数证明
    斐波那契公约数证明已知\(F_n\)为斐波那契数列,求证:\(∀n,m∈Z^+,(F_n,\F_m)=F_{(n,\m)}\)证明:令\(n<m\),\(F_n=F_1*a,\F_{n+1}=F_2*b\)\(F_{......
  • 【编程实践】手把手带你利用Python简单实现斐波那契数列
    前言什么是斐波那契数列?斐波那契数列的提出者,是意大利数学家列昂纳多·斐波那契(LeonardoFibonacci),生于公元1170年,卒于1250年,籍贯是比萨。他被人称作“比萨的列昂纳多”。当......
  • C语言求第n个斐波那契数(不考虑溢出)
      ​​//求第n个斐波那契数(不考虑溢出)  //斐波那契数列:前两项数字之和等于第三个数字 例如:1,1,2,3,5,8,13,​21,34,55...../* //用递归方法计算第n个斐波那契数不明智......
  • 【算法编程】和为 K 的最少斐波那契数字数目
    【算法编程】和为K的最少斐波那契数字数目  给定k个数,其满足斐波那契性质,从中挑选一部分数字(每个数只能被挑选1次)使得它们的和恰巧为k。目标是求出最少能够挑选几个数满......
  • Python-实现斐波那契数列
    代码实现如下:#-*-coding:utf-8-*-#定义函数deffab(n):#判断n的有效性ifn<=0:return'传递的参数必须是大于0的正整数!'#当n为1时......
  • HDU5091 Beam Cannon
    \(HDU5091\)\(Beam\)\(Cannon\)一、题目大意有\(n\)个点(\(n<=10000\)),点的坐标绝对值不超过\(20000\),然后问你用一个\(w*h(1<=w,h<=40000)\)的矩形,矩形的边平行于坐标......
  • 用生成函数推导斐波那契数列的通项公式
    定义数列$\{a_i\}$的普通生成函数$\rm(OGF,\ordinary\generating\function)$为$$f(x)=\sum^{\infty}_{i=0}a_ix^{i}\.$$考虑$\{a_i=1\}$的$\rmOGF......
  • 斐波那契数列(二)
        斐波那契数列在很多问题上得到了应用。下面通过一些具体的实例加以说明。【例1】钢管切割问题描述给一根长度为n的钢管,问最多能切割成几段钢管,使得截成的钢......