| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 779 人关注过本帖
标题:求汉诺塔算法实现过程中参数是如何变化的及详解。
只看楼主 加入收藏
花脸
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:9
帖 子:788
专家分:907
注 册:2017-1-4
结帖率:95.37%
收藏
已结贴  问题点数:20 回复次数:2 
求汉诺塔算法实现过程中参数是如何变化的及详解。
#include<stdio.h>

void move(char x,char y)
{
   printf("%c-->%c\n",x,y);
}
//将n个盘从one座借助two座,移到three座
void hanoi(int n,char one,char two,char three)
{
    if(n==1)
          move(one,three);//
    else
    {
         hanoi(n-1,one,three,two);   //
            move(one,three);//
            hanoi(n-1,two,one,three);//
    }
}

int main()
{
  int n;
  printf("input the number of diskes:\n");
  scanf("%d",&n);
  printf("The step to moving %3d diskes:\n",n);
  hanoi(n,'A','B','C');
  return 0;
}
搜索更多相关主题的帖子: 汉诺塔 char printf one hanoi 
2017-10-13 21:01
炎天
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:桃花岛
等 级:贵宾
威 望:29
帖 子:1218
专家分:4986
注 册:2016-9-15
收藏
得分:20 
程序代码:
//将n个盘从one座借助two座,移到three座
void hanoi(int n, char one, char two, char three)
{
    if (n == 1)
        move(one, three);//
    else
    {
        //总的大方向
        hanoi(n - 1, one, three, two);//n-1个盘先借助three座放到two座
        move(one, three);// 将one盘剩下的一个放到three座
        hanoi(n - 1, two, one, three);//在two座上的n-1个盘再借助one座放到three  (好了,n个盘都放好了)
    }
}


[此贴子已经被作者于2017-10-13 21:32编辑过]


早知做人那么辛苦!  当初不应该下凡
2017-10-13 21:31
花脸
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:9
帖 子:788
专家分:907
注 册:2017-1-4
收藏
得分:0 
回复 2楼 炎天
图片附件: 游客没有浏览图片的权限,请 登录注册
2017-10-13 21:59
快速回复:求汉诺塔算法实现过程中参数是如何变化的及详解。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013779 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved