递归算法

阶乘

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 递归算 阶乘 法斐波那契数 不死兔问题相关推荐

  1. python多种计算阶乘和斐波那契数列的六脉神剑

    目录 前言 一.求阶乘 1.第一种方法 2.第二种方法 3.第三种方法 4.第四种方法 5.第五种方法 6.第六种方法 二.斐波那契数列 1.第一种方法 2.第二种方法 3.第三种方法 前言 最近在p ...

  2. C和指针之函数之实现阶乘和斐波那契数(递归和非递归)

    1.问题 实现阶乘和斐波那契数(递归和非递归) 2.代码实现 #include <stdio.h>int num = 0; //递归实现斐波那契数 // n <=2, f(n) = ...

  3. 阶乘与斐波那契数的理解

    在算法导论第三章中,提到了阶乘和斐波那契数,颠覆或者说是加深了我以前对这两种数的理解.以前是无法想象这个数有多大,但现在是有了一个概念. 阶乘 阶乘的定义为 n!= n>0?1:n*(n-1)! ...

  4. Python递归小案例,斐波那契,阶乘等小案例

    递归只是一种思想,没有什么高大尚的东西,只不过有时候理解起来不是这么好理解,对递归最好的理解就是自己调用自己,递归是对一些存在递归思想的思想,最经典的案例就是阶乘,递归就是把复杂重复的事情简化. de ...

  5. 时间复杂度 ( 递归实现阶乘、斐波那契数列第n个数) / 空间复杂度

    1 时间复杂度   时间复杂度是衡量程序运行的快慢,对于一个程序来说,运行速度的快慢,有很多干扰因素,不同的硬件条件都可能影响到速度的快慢.时间复杂度来衡量,不是精确的衡量,只是单纯从代码本身衡量程序 ...

  6. python计算第n个斐波那契数_计算第n个斐波那契数

    方法一:传统递归法 时间复杂度O(2^n),空间复杂度O(n) 计算Fibonacci(10)十次平均用时0.0003s    计算Fibonacci(100)单次用时大于1min 时间复杂度极高,当 ...

  7. rust(39)-递归-阶乘与斐波那契数

    Finished dev [unoptimized + debuginfo] target(s) in 0.04sRunning `F:\learn\rustlearn\learn35\target\ ...

  8. 笔试题:一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。该题有三种解法:递归的方法求解斐波那契数列、用概率与统计的数学方法解决,3.动态规划

    笔试题 一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶.求该青蛙跳上一个 n 级的台阶总共有多少种跳法.该题有三种解法:1.递归的方法求解斐波那契数列.2.用概率与统计的数学方法解决,3.动态规划 ...

  9. [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 ...

最新文章

  1. Java中值传递和引用传递原理以及区别
  2. 微信企业号-根据code获取成员信息(过期code)
  3. 十分钟学会制作一个漂亮的在线文档
  4. zoj 3703(背包)
  5. WebResponse 跨域访问
  6. C# 文件与Base64的相互转换
  7. nxp单片机入门_使用恩智浦MCUXpresso开发FRDM-KL46Z入门
  8. 实战SATA硬盘安装64位XP(转)
  9. 大白话C++:新手入门教程(附源码及详解、视频课程资料推荐)
  10. 单片机实例11—— 00-59秒计时器(利用软件延时)(硬件电路图+汇编程序+C语言程序)
  11. uniapp map画多边形 打点连线
  12. cadence PCB边框(Outline)加倒角
  13. K8S部署ingress-nginx
  14. 2073-三角形面积
  15. 如何从0到1搭建一个个人网站
  16. 《第一行代码》12.2学习中遇到的一些问题and心得
  17. 陈景润对哥德巴赫猜想“执迷不悟”
  18. 05 openEuler DDE 桌面环境的安装和使用
  19. 移动县公司网络部感受
  20. *VWRITE 命令应该注意的事项

热门文章

  1. 微信公众号登录(测试号)
  2. android 录制图片、视频插入系统相册视频相册列表中,视频mediaPlayer静音和mediaPlayer恢复静音,SurfaceView+mediaplayer视频播放,自定义任意view显示
  3. 《C++ 开发从入门到精通》——1.2 开发工具——Visual C++
  4. RTL8139的linux源代码分析
  5. android长度单位转换工具类
  6. sklearn中的model_selection
  7. IDEA调试程序按钮初探 (Step Over/Step Into/Force Step Into/Step Out/Evaluate Expression/Resume Program/条件断点)
  8. 4 妙用北向资金,跟着操作5年4倍
  9. Science | 单细胞分析人类胸腺发育的细胞图谱
  10. h5页面元素聚焦手机无法弹出键盘