栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

汉诺塔问题c语言(汉诺塔问题是用什么方法求解)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

汉诺塔问题c语言(汉诺塔问题是用什么方法求解)

突发奇想想要解决汉诺塔问题,上学期学的python里面是有实现过一次。

代码如下:

def hanoi(n,x,y,z):
    if n == 1:
        print(x,'-->',z)
    else:
        hanoi(n-1,x,z,y) #将前n-1个盘子从x移动到y上
        print(x,'-->',z) #将最底下最后一个盘子从x移动到z上
        hanoi(n-1,y,x,z) #将y上的n-1个盘子移动到z上
        
n = int(input('请输入汉诺塔的层数:'))
hanoi(n,'X','Y','Z')

虽然最后期末考考了一道汉诺塔源代码,我还是不会(无能狂怒)!

运用现在学习的c语言,代码如下:

#include 
void hanoi(int n , char A , char B , char C)//n个圈圈在柱子A上,借助柱子B,移动到柱子C上
{
  if(n == 1)//如果A柱子上只有一个圈圈,直接移动到C上
    printf("%c --> %cn",A,C);
  else
  {
    hanoi(n-1,A,C,B);//将A柱子上的n-1个圈圈,借助柱子C,移动到柱子B上
    printf("%c --> %cn",A,C);//将A柱子上的最后一个圈圈移动到柱子C上
    hanoi(n-1,B,A,C);//将B柱子上的n-1个圈圈,借助柱子A,移动到柱子C上
  }
}
 
int main()
{
  hanoi(8,'A','B','C');
  return 0;
}
 

多看看,多想想,多打打!就会了。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/772981.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号