用迭代和递归方式分别写一个兔子生育的python程序(斐波那契数列)
问题:
有一对兔子出生,从第三月起,每个月生一对兔子,出生的兔子也是第三月起每个月生一对兔子,请问n年后,共有多少只兔子?
月份 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | … | n |
---|---|---|---|---|---|---|---|---|---|---|---|---|
数量(对) | 1 | 1 | 2 | 3 | 5 | 8 | 13 | 21 | 34 | 55 | … | F(n-2)+F(n-1) |
思路:前2个月兔子对数都是1对,从第三个月开始兔子的对数是前面2个月兔子对数之和
F(1)=F(2)=1
F(n)=F(n-2)+F(n-1)
利用递归的方法:
def F2(temp):if temp<1:print("输入有误!")return -1if (temp==1 or temp==2):return 1else:return F2(temp-2)+F2(temp-1)temp=int(input("请输入一个正整数:"))
result=F2(temp)
print("%d个月后,有%d对小兔子"%(temp,result))
利用迭代的方法:
def F1(n):n1=1n2=1n3=1if n<1:print("输入有误!")return -1while (n-2)>0:n3=n2+n1n2=n3n1=n2n-=1return n3
n=int(input("请输入一个正整数:"))
result=F1(n)
if result!=-1:print("%d个月后,总共有%d对小兔子!"%(n,result))
差别:迭代算法效率比递归算法效率高,递归思路更加直接体现问题写法。
用迭代和递归方式分别写一个兔子生育的python程序(斐波那契数列)相关推荐
- Python输出斐波那契数列【递归、迭代】
Python输出斐波那契数列[递归.迭代] 首先 斐波那契数列的定义是什么? 斐波那契数列指的是这样一个数列:0.1.1.2.3.5.8.13.21.34.--在数学上,斐波那契数列以如下被以递推的方 ...
- python查询斐波那契数列通项公式_分享一个神奇的操作系统——斐波那契+MACD,每一波都有20%以上的收益!...
斐波那契数列,又称兔子数列,或者黄金分割数列.指的是这样一个数列: 0.1.1.2.3.5.8.13.21--从第三项起,它的每一项都等于前两项的和. 为什么是兔子数列?我们假设兔子在出生两个月后,就 ...
- 利用Python求斐波那契数列的第N项以及前N项和(循环、递归、集合)
著名的斐波那契数列,即从第三项开始,每一项都等于前两项之和. 之前写过利用Java语言来编写,由于最近正在学Python,所以将自己的想法记录在此,有需要的朋友可以参考一下. 写在前面:这里的三个方法 ...
- python一只青蛙一次可以_40.细说递归之二:Python求解斐波那契数列
本篇通过青蛙跳台阶.兔子数列(斐波那契数列)问题进一步理解递归思想的魅力. 上一篇最后的题目如下: 一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶.求该青蛙跳上一个n级的台阶总共有多少种跳法? 归纳 ...
- python编写递归函数、求斐波那契数列第n项_40.细说递归之二:Python求解斐波那契数列...
本篇通过青蛙跳台阶.兔子数列(斐波那契数列)问题进一步理解递归思想的魅力. 上一篇最后的题目如下: 一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶.求该青蛙跳上一个n级的台阶总共有多少种跳法? 归纳 ...
- java从键盘输入数据斐波那契数_从键盘输入一个正整数n,打印出斐波那契数列的前n个元素...
import java.util.*; public class Test { public static void main(String[] args){ Scanner in = new Sca ...
- python输出斐波那契数列_python面试题之如何用Python输出一个斐波那契数列
[BZOJ1623] [Usaco2008 Open]Cow Cars 奶牛飞车 贪心 SB贪心,一开始还想着用二分,看了眼黄学长的blog,发现自己SB了... 最小道路=已选取的奶牛/道路总数. ...
- 由递推关系式用差分方程的方法得到通项公式实现求斐波那契数列的第n项;迭代、递归、栈、差分方程之间的本质联系以及由推广的迭代法解决“变态青蛙跳台阶”问题;汉诺塔问题的数字特征以及用递归解决的原理推导。
最近几天在研究算法中一个比较基础且突出的问题,就是关于"递推关系式.递归.迭代.序列前k项和"之间的区别与联系. 一.斐波那契数列与差分方程 首先我们考察一个经典的算法,求斐波那契 ...
- 斐波那契数列python递归 0、1、1、2、3_python实现斐波那契数列的多种方式
正文共: 3269字 8图 预计阅读时间: 9分钟 每日分享 The great pleasure in life is doing what people say you cannot do. 人生 ...
最新文章
- OpenCV 读取一张图片并显示和保存
- ASP.NET自定义控件组件开发 第三章 为控件添加事件 后篇
- 直播预告 | AAAI 2022论文解读:基于能量的主动域自适应学习方法
- Android开发之Java基础面试题抽象类和接口的区别
- date oracle 显示毫秒_Oracle date timestamp 毫秒 - 时间函数总结
- java 下一代_Java 下一代: 混入和特征
- WinEdt10注册码
- 一文看懂BGP路由黑洞问题
- Analysis::checkBidir2Nx2N()
- python绘制中国省界地图_利用python绘制中国地图(含省界、河流等)
- 项目部 vs 项目组
- 计算机网络共享自动关,启用网络发现,重新打开“高级共享设置”对话框,显示仍是关闭状态...
- 经典的01背包问题(挖金矿)
- JAVA-day09-多线程
- sklearn make_blobs函数
- python 马赛克拼图_使用 python 做到马赛克拼图
- 计算机组装与维护集体备课,浅谈集体备课
- 【SPSS】百分位数计算方法探讨:SPSS计算差异
- Django:将项目移动到新环境
- 小米MIx3 miui11国际版本地化