| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 619 人关注过本帖
标题:今天看了课本汉诺塔的程序,不明白,求大神解读
只看楼主 加入收藏
歪鼻子
Rank: 1
来 自:中国
等 级:新手上路
帖 子:18
专家分:2
注 册:2015-8-6
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:5 
今天看了课本汉诺塔的程序,不明白,求大神解读
/* 汉诺塔.cpp */
#include<stdio.h>
void Move(char A, char B);
void Hanio(int n, char A, char B,char C);

int main()
{
  int n;
  char A='a',B='b',C='c';
  printf("请输入汉诺塔的阶数:");
  scanf("%d", &n);
  Hanio(n,A,B,C);
  return 0;
}
 
void Move(char A,char B)
{
  printf("%c-->%c\t",A,B);
  return;
}

void Hanio(int n, char A,char B, char C)
{
  if(n==1)
  Move(A,C);
  else
  {
   Hanio(n-1,A,C,B);             //????????
   Move(A,C);
   Hanio(n-1,B,A,C);            //?????????
  }
  return;
}


我自己按照程序推了一下第一步是a-->b;而程序运行时分为  层数为奇偶  的两种情况
奇数:第一步a-->c;  偶数:第一步a-->b;
搜索更多相关主题的帖子: include return 课本 
2015-08-12 16:46
歪鼻子
Rank: 1
来 自:中国
等 级:新手上路
帖 子:18
专家分:2
注 册:2015-8-6
收藏
得分:0 
求大神指点,程序看不明白,看网上的资料也没弄懂,好无语。。。。。。。。。

谁抢了我的---"哈哈怪" !!!
2015-08-12 16:48
歪鼻子
Rank: 1
来 自:中国
等 级:新手上路
帖 子:18
专家分:2
注 册:2015-8-6
收藏
得分:0 
秋风萧瑟啊。。。。。。。。。

谁抢了我的---"哈哈怪" !!!
2015-08-12 17:19
诸葛欧阳
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:流年
等 级:贵宾
威 望:82
帖 子:2790
专家分:14619
注 册:2014-10-16
收藏
得分:5 
你可以试着用自己的话把解题思路描述一下,这样你慢慢就可以理解题目的含义了。

一片落叶掉进了回忆的流年。
2015-08-12 18:45
linjxwell
Rank: 2
等 级:论坛游民
帖 子:12
专家分:40
注 册:2013-3-14
收藏
得分:5 
PS: 以下内容是从网上得来的, 与楼主的代码相对应.

# 汉诺塔思想笔记
# 认识汉诺塔的目标:把A柱子上的N个盘子移动到C柱子
# 递归的思想就是把这个目标分解成三个子目标
# 子目标1:将前n-1个盘子从a移动到b上
# 子目标2:将最底下的最后一个盘子从a移动到c上
# 子目标3:将b上的n-1个盘子移动到c上
# 然后每个子目标又是一次独立的汉诺塔游戏,也就可以继续分解目标直到N为1
2015-08-13 10:13
歪鼻子
Rank: 1
来 自:中国
等 级:新手上路
帖 子:18
专家分:2
注 册:2015-8-6
收藏
得分:0 
我好像明白点了。

谁抢了我的---"哈哈怪" !!!
2015-08-15 07:15
快速回复:今天看了课本汉诺塔的程序,不明白,求大神解读
数据加载中...
 
   



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

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