专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

一个斐波那契数列算法

面试现场的解决方案

这是我的笔试临场发挥,写的有点low。

def fib(n):
    i,a,b = 1, 0, 1
    while True:
      if i < n:
        a, b = b, a+b
        i += 1
      else:
        return b

思考:循环判断条件是不是可以优化?

def fib(n):
    i,a,b = 1, 0, 1
    while i < n:
        a, b = b, a+b
        i += 1
    return b

后来我又想,a, b = b, a+b,这一步分开赋值该怎么搞,于是:

# a, b 分开赋值
def fib(n):
    i,a,b = 1, 0, 1
    while i< n:
        temp = a + b
        a = b
        b = temp
        i += 1
    return b

# 说明:这里必须要用一个中间变量来存储新推倒出来的值: a+b

使用for循环方式

# 迭代 斐波那契
def fib(n):
    a,b = 1,1
    for i in range(n-2):
        a,b = b, a+b
    return b

使用递归方式

# 递归 斐波那契
def fib(n):
    if n <= 2:
        return 1
    return fib(n - 1) + fib(n - 2)

Enjoy your code, good luck.

文章永久链接:https://tech.souyunku.com/21660

未经允许不得转载:搜云库技术团队 » 一个斐波那契数列算法

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们