2016 - 2025

感恩一路有你

汉诺塔递归算法c语言 汉诺塔递归算法?

浏览量:2057 时间:2021-03-13 11:04:10 作者: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}

复制代码

Hanoi tower可以理解为移动塔的游戏,将n层塔从一列移动到另一列

2。这是河内塔(n,a,c)的递归原型——n层塔从一列移到c列;每次你必须返回这个原型时,它被认为是递归完成

!3. 在中间B柱的帮助下,河内塔的原型被写为hunnuota(n,a,B,c)-n层塔在B柱的帮助下从a柱移动到c柱,这应该被理解;

4。递归需要一个出口,这是控制条件。当n=1时,塔可以直接从a移到C,C是出口

5。当n>1时,这一步是理解汉诺塔递归的关键,它必须形成n-1层移到C柱的形式,可分为三步:

A.如果n层不能同时移动,可以理解为先将A上面的n-1层移到B柱

Ba柱,塔的剩余n层移到C柱,

C,然后在B列上形成n-1层移动到C列——

递归完成

汉诺塔递归算法c语言 汉诺塔递归算法图解 汉诺塔递归太难理解了

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