博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
011 递归
阅读量:6090 次
发布时间:2019-06-20

本文共 856 字,大约阅读时间需要 2 分钟。

一:简单使用

1.需求

  写一个简单的阶乘。

 

2.程序

  这个程序主要的功能是,通过例子理解阶乘

1 def factorial(n):2     if n==1:3         return 14     else:5         return n*factorial(n-1)6 7 fact=factorial(5)8 print(fact)

 

3.效果

  

 

二:菲波那切数列

1.说明

  1、1、2、3、5、8、13、21

  在数学上,斐波纳契数列以如下被以递归的方法定义:F0=0,F1=1,Fn=F(n-1)+F(n-2)(n>=2,n∈N*)

 

2.程序

1 ##1、1、2、3、5、8、13、212 def fibonacci(n):3     if n==1 or n==2:4         return 15     else:6         return fibonacci(n-2)+fibonacci(n-1)7 8 fib=fibonacci(8)9 print(fib)

 

3.效果、

  

 

三:汉诺塔

1.抽象后的做法

  

 

2.思路

  这里以函数的形参为出发点。

  将三个柱子(初始柱,过渡柱,目标柱)分别标记为A,B,C

  1.将初始柱上除最下面的圆盘以外的圆盘全部搬到过渡柱上;

  2.将初始柱上最下面的圆盘搬到目标柱上;

  3.将过渡柱上的圆盘全部搬到目标柱上。

 

3.程序

1 ## 2 def hanoiTower(n,a,b,c): 3     if n==1: 4         print(a,'-->' ,c) 5         return 6     else: 7         hanoiTower(n-1,a,c,b) 8         print(a,'-->' ,c) 9         hanoiTower(n-1,b,a,c)10 11 hanoiTower(3,'X','Y','Z')

 

4.效果

  

 

转载地址:http://zqlwa.baihongyu.com/

你可能感兴趣的文章
Spark Streaming揭秘 Day29 深入理解Spark2.x中的Structured Streaming
查看>>
鼠标增强软件StrokeIt使用方法
查看>>
本地连接linux虚拟机的方法
查看>>
某公司面试java试题之【二】,看看吧,说不定就是你将要做的题
查看>>
BABOK - 企业分析(Enterprise Analysis)概要
查看>>
Linux 配置vnc,开启linux远程桌面
查看>>
CentOS6.4关闭触控板
查看>>
React Native 极光推送填坑(ios)
查看>>
Terratest:一个用于自动化基础设施测试的开源Go库
查看>>
修改Windows远程终端默认端口,让服务器更安全
查看>>
扩展器必须,SAS 2.0未必(SAS挺进中端存储系统之三)
查看>>
Eclipse遇到Initializing Java Tooling解决办法
查看>>
while((ch = getchar()) != '\n')
查看>>
好程序员web前端分享JS检查浏览器类型和版本
查看>>
Oracle DG 逻辑Standby数据同步性能优化
查看>>
exchange 2010 队列删除
查看>>
「翻译」逐步替换Sass
查看>>
H5实现全屏与F11全屏
查看>>
处理excel表的列
查看>>
C#数据采集类
查看>>