CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  新手乐园

一个关于汉诺塔编程的问题

楼主lyfhdlwl(行者)2006-06-04 09:09:40 在 C/C++ / 新手乐园 提问

怎样将汉诺塔编程中移动盘子的步骤总数统计出来?  
  代码如下:  
  #include   "stdio.h"  
  main()  
  {  
    void   hanoi(int   n,char   one,char   two,char   three);  
    int   m;  
    printf("input   the   number   of   diskes:");  
    scanf("%d",&m);  
    printf("The   step   of   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);  
  } 问题点数:20、回复次数:1Top

1 楼jixingzhong(瞌睡虫·星辰)回复于 2006-06-04 09:33:45 得分 20

定义一个全局的变量   count   :  
  (或者可以是   函数中   static   类型的)  
   
  int   move_count,   hanoi_count;  
  void   hanoi(int   n,char   one,char   two,char   three)  
  {  
      void   move(char   x,char   y);  
      hanoi_count==;         //count++  
      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)  
  {  
      move_count==;   /count++        
      printf("%c------------>%c\n",x,y);  
  }  
  Top

相关问题

关键词

得分解答快速导航

  • 帖主:lyfhdlwl
  • jixingzhong

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo