2016 - 2024

感恩一路有你

python递归算法经典实例 汉诺塔递归算法?

浏览量:1067 时间:2021-03-15 13:25:08 作者:admin

汉诺塔递归算法?

1//河内塔

2#包括和酒店。H>

3 void Hanoi(int n,char a,char b,char c)//这里表示在b列的帮助下将a列上的图版移到c列

4{if(1==n)//如果是图版,将a列上的图版移到c列

5{

6 Printf(%c-->%cn,a,c)

7}

8 else

9{

10 Hanoi n-1,a,c,b)//move n-1 plates on column a to column B with the column C

11 printf(%C-->%Cn“,a,C)//将a列的最后一块板移到C列

12 Hanoi(n-1,B,a,C)//然后将B列的n-1板移到C

13}

14}

15 int main()

16{int n

17 printf输入磁盘数:”)

18 scanf(%d“,&n)

19 Hanoi(n,%a”,%B“,%C”)

20 return 0

21}

递归的主要思想是能够重复一些操作,如简单阶乘、幂、回溯中的八皇后、数独、汉诺塔和分形。

由于堆栈机制,一般递归可以保持一些变量处于历史状态,例如返回x*Power。。。您提到过,但是有些问题可能很大或太深,需要尽可能避免递归,因为堆栈可能会溢出。另一个

问题是Python不支持尾部递归优化

所以尽量避免递归。

Def power(x,n)

如果n< 0:

return 1

return x*power(x,n-1)

power(3,3)

3*power(3,2)

3*(3*power(3,1))

3*(3*power(3,0))

3*(3*1)),其中n=0,return 1

3*(3*3)

3*9

当函数参数n=0时,开始撤退到第一次通电结束。

python递归算法经典实例 汉诺塔python用递归实现 python递归汉诺塔详解

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。