Python 递归算 阶乘 法斐波那契数 不死兔问题
递归算法
阶乘
n!=nn-1n-2*…1
def fac(n):"""求某数的阶乘值:param n:某数:return:阶乘"""# 递归的结束:if n == 1:return 1return n * fac(n - 1)# fac(5)# print(fac(5))
斐波那契数
1 1 2 3 5 8…
def fibona(n):"""求斐波那契数:param n:第几个:return:第几个斐波那契数"""if n == 1 or n == 2:return 1# 求前一个和前前一个的斐波那契数值return fibona(n - 1) + fibona(n - 2)# print(fibona(10))# 获取递归的限定层级# import sys# # print(sys.getrecursionlimit())# sys.setrecursionlimit(999999)
计算不死兔问题
def half_year_rabbit(half_years: int):# 直接给答案if half_years == 0:return 0, 0, 1# 计算前半年的兔子数a, b, c = half_year_rabbit(half_years - 1)# 计算当前半年的兔子数a, b, c = a + b, c, areturn a, b, cprint(half_year_rabbit(200))
Python 递归算 阶乘 法斐波那契数 不死兔问题相关推荐
- python多种计算阶乘和斐波那契数列的六脉神剑
目录 前言 一.求阶乘 1.第一种方法 2.第二种方法 3.第三种方法 4.第四种方法 5.第五种方法 6.第六种方法 二.斐波那契数列 1.第一种方法 2.第二种方法 3.第三种方法 前言 最近在p ...
- C和指针之函数之实现阶乘和斐波那契数(递归和非递归)
1.问题 实现阶乘和斐波那契数(递归和非递归) 2.代码实现 #include <stdio.h>int num = 0; //递归实现斐波那契数 // n <=2, f(n) = ...
- 阶乘与斐波那契数的理解
在算法导论第三章中,提到了阶乘和斐波那契数,颠覆或者说是加深了我以前对这两种数的理解.以前是无法想象这个数有多大,但现在是有了一个概念. 阶乘 阶乘的定义为 n!= n>0?1:n*(n-1)! ...
- Python递归小案例,斐波那契,阶乘等小案例
递归只是一种思想,没有什么高大尚的东西,只不过有时候理解起来不是这么好理解,对递归最好的理解就是自己调用自己,递归是对一些存在递归思想的思想,最经典的案例就是阶乘,递归就是把复杂重复的事情简化. de ...
- 时间复杂度 ( 递归实现阶乘、斐波那契数列第n个数) / 空间复杂度
1 时间复杂度 时间复杂度是衡量程序运行的快慢,对于一个程序来说,运行速度的快慢,有很多干扰因素,不同的硬件条件都可能影响到速度的快慢.时间复杂度来衡量,不是精确的衡量,只是单纯从代码本身衡量程序 ...
- python计算第n个斐波那契数_计算第n个斐波那契数
方法一:传统递归法 时间复杂度O(2^n),空间复杂度O(n) 计算Fibonacci(10)十次平均用时0.0003s 计算Fibonacci(100)单次用时大于1min 时间复杂度极高,当 ...
- rust(39)-递归-阶乘与斐波那契数
Finished dev [unoptimized + debuginfo] target(s) in 0.04sRunning `F:\learn\rustlearn\learn35\target\ ...
- 笔试题:一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。该题有三种解法:递归的方法求解斐波那契数列、用概率与统计的数学方法解决,3.动态规划
笔试题 一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶.求该青蛙跳上一个 n 级的台阶总共有多少种跳法.该题有三种解法:1.递归的方法求解斐波那契数列.2.用概率与统计的数学方法解决,3.动态规划 ...
- [python]练习之递归和循环实现斐波拉契数列
1 # 程序功能:用递归和循环实现斐波拉契数列 2 # 0 1 1 2 3 5 8 13 21 34 3 4 def digui_fibo(number): 5 if number == 1: 6 r ...
最新文章
- Java中值传递和引用传递原理以及区别
- 微信企业号-根据code获取成员信息(过期code)
- 十分钟学会制作一个漂亮的在线文档
- zoj 3703(背包)
- WebResponse 跨域访问
- C# 文件与Base64的相互转换
- nxp单片机入门_使用恩智浦MCUXpresso开发FRDM-KL46Z入门
- 实战SATA硬盘安装64位XP(转)
- 大白话C++:新手入门教程(附源码及详解、视频课程资料推荐)
- 单片机实例11—— 00-59秒计时器(利用软件延时)(硬件电路图+汇编程序+C语言程序)
- uniapp map画多边形 打点连线
- cadence PCB边框(Outline)加倒角
- K8S部署ingress-nginx
- 2073-三角形面积
- 如何从0到1搭建一个个人网站
- 《第一行代码》12.2学习中遇到的一些问题and心得
- 陈景润对哥德巴赫猜想“执迷不悟”
- 05 openEuler DDE 桌面环境的安装和使用
- 移动县公司网络部感受
- *VWRITE 命令应该注意的事项
热门文章
- 微信公众号登录(测试号)
- android 录制图片、视频插入系统相册视频相册列表中,视频mediaPlayer静音和mediaPlayer恢复静音,SurfaceView+mediaplayer视频播放,自定义任意view显示
- 《C++ 开发从入门到精通》——1.2 开发工具——Visual C++
- RTL8139的linux源代码分析
- android长度单位转换工具类
- sklearn中的model_selection
- IDEA调试程序按钮初探 (Step Over/Step Into/Force Step Into/Step Out/Evaluate Expression/Resume Program/条件断点)
- 4 妙用北向资金,跟着操作5年4倍
- Science | 单细胞分析人类胸腺发育的细胞图谱
- h5页面元素聚焦手机无法弹出键盘