鱼C论坛

 找回密码
 立即注册
查看: 4227|回复: 2

关于汉诺塔问题!

[复制链接]
发表于 2012-10-9 20:24:05 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
下面是一个求汉诺塔移动方式的代码:
#include <stdio.h>
void hanoi(int n,char one,char two,char three);
void main()
{
    int m;
    printf("input the number of diskes:");
    scanf("%d",&m);
    printf("The step to moveing %d diskes:\n",m);
    hanoi(m,'A','B','C');

}
void hanoi(int n,char one,char two,char three)
{
    void move(char x,char y);
    if (n==1)
    {
        move(one,three);
    }
    else
    {
        hanoi(n-1,one,three,two);
        move(one,three);
        hanoi(n-1,two,one,three);
    }
}
void move(char x,char y)
{

    printf("%c-->%c \n",x,y);
}
我想问问怎么才能知道他调用move函数的次数和它一共的移动次数怎么该这段代码可以实现?!求大侠赐教!

小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-10-10 16:29:14 | 显示全部楼层
加一个变量,赋初值为0,每次调用该变量自加1.然后输出该变量的值。这是我刚学时候不知道怎么调试用的笨办法
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2012-10-10 16:49:24 | 显示全部楼层
这个我也想了,就是不知道代码怎么写,在哪里添加!其实可以每调用一次输出次数,但是现在我想只要最终的次数,比如3个要挪动7次,我只想要最终的次数7次!
小甲鱼最新课程 -> https://ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-11-15 12:03

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表