Python实例 您所在的位置:网站首页 小兔子编程 Python实例

Python实例

2024-07-15 14:52| 来源: 网络整理| 查看: 265

Python实例—有一对兔子,从出生后的第3个月起每个月都生一对兔子。小兔子长到第3个月后每个月又生一对兔子,假设所有的兔子都不死,求解每个月的兔子总对数数量?

分析问题

前两个月都是1对兔子,第三个月出生1对新兔子,共有2对兔子,第n个月出生的新兔子对数数量为第n-2个月的兔子对数数量(出生的新兔子经过两个月成长在第三个月开始生兔子),加上已存在的兔子对数(第n-1个月的兔子对数数量)就是第n个月的兔子对数

#使用递归的方法实现 month=eval(input('请输入月份')) def f(month): if month==1 or month ==2: return 1 else: return f(month-2)+f(month-1) print(f(month)) #使用迭代的方法实现 month=eval(input('请输入月份')) def f(month): number=[1,1] for i in range(2,month): num=number[i-1]+number[i-2] number.append(num) return number[month-1] print(f(month)) #求解前n个月的兔子数量 def f(month): number=[1,1] for i in range(2,month): num=number[i-1]+number[i-2] number.append(num) return number[month-1] for i in range(1,31): print('第'+str(i)+'个月的兔子对数数量是{}'.format(f(i))) #计算迭代使用的时间 import time month=eval(input('请输入月份')) def f(month): number=[1,1] for i in range(2,month): num=number[i-1]+number[i-2] number.append(num) return number[month-1] start = time.perf_counter() print(f(month)) dur= time.perf_counter()-start print('迭代使用的时间是{:.6f}s'.format(dur))

请输入月份30 832040 迭代使用的时间是0.000276s

#使用递归的方法实现,递归实现使用的时间远大于迭代的时间,应该谨慎使用递归 import time month=eval(input('请输入月份')) def f(month): if month==1 or month ==2: return 1 else: return f(month-2)+f(month-1) start = time.perf_counter() print(f(month)) dur= time.perf_counter()-start print('递归使用的时间是{:.6f}s'.format(dur))

请输入月份30 832040 递归使用的时间是0.214677s 结论:递归实现使用的时间远大于迭代的时间,应该谨慎使用递归



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有