python递归方式和普通方式实现输出和查询斐波那契数列
●斐波那契数列
斐波那契数列(Fibonacci sequence),是从1,1开始,后面每一项等于前面两项之和。
如果为了方便可以用递归实现,要是为了性能更好就用循环。
◆递归方式实现生成前30个斐波那契数
list = []
for i in range(30):
if i == 0 or i == 1:
list.append(1)
# print(f"第{i+1}个斐波那契数是:{list[i]}")
else:
list.append(list[i-2]+list[i-1])
# print(f"第{i+1}个斐波那契数是:{list[i]}")
print(list,end=",")
◆普通方式实现生成前1000以内的斐波那契数
a = 0
b = 1
while b < 1000:
print(b, end=" , ")
a,b = b, a+b
◆递归方式实现用户输入查询第n个斐波那契数--此种方式当查询的数据比较大时会反应比较慢
def fibona(n):
return 1 if n <= 2 else fibona((n-1))+fibona(n-2)
n = int(input("请输入你要查的第几个斐波那契数:"))
print(f"你要查询的第{n}个斐波那契数是:{fibona(n)}")
◆普通方式实现用户输入查询第n个斐波那契数--此种方式性能比较好!
step = int(input("请输入你要查的第几个斐波那契数:"))
x,y = 1,1
for i in range(step-1):
x,y = y,x+y
print(f"你要查询的第{step}个斐波那契数是:{x}")
python递归方式和普通方式实现输出和查询斐波那契数列的更多相关文章
- 算法 递归 迭代 动态规划 斐波那契数列 MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- Python练习笔记——斐波那契数列
斐波那契数列(Fibonacci sequence),又称黄金分割数列.因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一 ...
- 实现斐波拉契数列的四种方式python代码
斐波那契数列 1. 斐波拉契数列简介 斐波那契数列(Fibonacci sequence),又称黄金分割数列.因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引 ...
- JS高级. 06 缓存、分析解决递归斐波那契数列、jQuery缓存、沙箱、函数的四种调用方式、call和apply修改函数调用方法
缓存 cache 作用就是将一些常用的数据存储起来 提升性能 cdn //-----------------分析解决递归斐波那契数列<script> //定义一个缓存数组,存储已经计算出来 ...
- Python 两种方式实现斐波那契数列
斐波那契数列指的是这样一个数列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946 ...
- Python编程笔记(第三篇)【补充】三元运算、文件处理、检测文件编码、递归、斐波那契数列、名称空间、作用域、生成器
一.三元运算 三元运算又称三目运算,是对简单的条件语句的简写,如: 简单条件处理: if 条件成立: val = 1 else: val = 2 改成三元运算 val = 1 if 条件成立 else ...
- Python递归及斐波那契数列
递归函数 在函数内部,可以调用其他函数.如果一个函数在内部调用自身本身,这个函数就是递归函数.举个例子,我们来计算阶乘 n! = 1 * 2 * 3 * ... * n,用函数 fact(n)表示,可 ...
- Python(迭代器 生成器 装饰器 递归 斐波那契数列)
1.迭代器 迭代器是访问集合元素的一种方式.迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束.迭代器只能往前不会后退,不过这也没什么,因为人们很少在迭代途中往后退.另外,迭代器的一大优 ...
- Python进阶(七)----带参数的装饰器,多个装饰器修饰同一个函数和递归简单案例(斐波那契数列)
Python进阶(七)----带参数的装饰器,多个装饰器修饰同一个函数和递归简单案例(斐波那契数列) 一丶带参数的装饰器 def wrapper_out(pt): def wrapper(func): ...
随机推荐
- UFUN函数 UF_TRNS(平移 变换)( uf5943 , uf5947)
//设置class_dialog选择过滤 static int init_proc(UF_UI_selection_p_t select,void* user_data) { ; //实体 片体 UF ...
- linux-shell脚本基础-2
1,用户组 添加用户 useradd -u UID -o -g 指定 GID或组名 -c 注释信息 -d 家目录 -s shell -G 附加组 -r 系统用户 -m 家目录,系统用户 -M 不创建家 ...
- Kotlin使用率达35%,Java要退位了?
在今年的Google I/O大会上,关于Kotlin,Google只说了只言片语: 在过去一年里,有35%的专业Android开发者在使用Kotlin,其中95%的开发者都对Kotlin非常满意. 之 ...
- Python黑科技:FuckIt.py
说起 Python 强大的地方,你可能想到是它的优雅.简洁.开发速度快,社区活跃度高.但真正使得这门语言经久不衰的一个重要原因是它的无所不能,因为社区有各种各样的第三库,使得我们用Python实现一个 ...
- JPagination分页插件的使用(ASP.NET中使用)
前台代码 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Index.asp ...
- es6 语法的
es5 中提供了 两个声明变量的方式 var function es6 中提供了 四种声明变量的方式 let const class import 现在,定义变量的关键字有 6 个了 备注:不能忽略函 ...
- java内存分布详解
参见:http://blog.csdn.net/bluetjs/article/details/52874711 基本类型和引用类型.二者作为局部变量,都放在栈中,基本类型直接在栈中保存值,引用类型只 ...
- leetcode 206 反转链表 Reverse Linked List
C++解法一:迭代法,使用前驱指针pre,当前指针cur,临时后继指针nxt: /** * Definition for singly-linked list. * struct ListNode { ...
- yarn.lock 是干什么的
概述 今天本地运行尤大的vue-hackernews-2.0,使用 yarn 命令安装,报错提示 node 版本必须大于7小于9,如下所示: error upath@1.0.4: The engine ...
- hibernate中get和load区别
在日常开发中,获取数据时必不可少的,这样就要用到get和load方法来实现了.下面简单说一下get和load的区别. 1.返回值不同 使用get方法检索数据时,没有该数据返回值为null. 而使用lo ...