新技术论坛
搜索
查看: 1171|回复: 0
打印 上一主题 下一主题

[VC/C++] 汉诺塔

[复制链接]
  • TA的每日心情
    无聊
    2016-9-11 15:26
  • 签到天数: 107 天

    连续签到: 1 天

    [LV.6]常住居民II

    扫一扫,手机访问本帖
    楼主
    跳转到指定楼层
    发表于 2016-8-3 23:15:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    1. #include <stdio.h>

    2. void hainuo(int n, char A, char B, char C);
    3. void move(char x, int n, char y);

    4. int fun;

    5. void main()
    6. {
    7.         char ch1 ='A';
    8.         char ch2 ='B';
    9.         char ch3 ='C';

    10.         int n;
    11.         fun=0;
    12.         printf("please input the num of the hainuo:\n>>");
    13.         scanf("%d", &n);

    14.         hainuo(n,ch1,ch2,ch3); //n个,从A,借助B,到C
    15. }



    16. void hainuo(int n, char A, char B, char C)
    17. {
    18.         if(n==1)
    19.                 move(A,1,C);
    20.         else{
    21.                 hainuo(n-1,A,C,B);
    22.                 move(A,n,C);
    23.                 hainuo(n-1,B,A,C);
    24.         }
    25. }

    26. void move(char x, int n, char y)
    27. {
    28.         fun++;
    29.         printf("%d\t%d:%c->%c\n",fun,n,x,y);
    30. }
    复制代码
    fun为操作次数

    输出格式:

    次数        第n个盘子:操作柱子->目标柱子



    高级模式
    B Color Image Link Quote Code Smilies

    本版积分规则

    手机版|Archiver|开发者俱乐部 ( ICP/ISP证:辽B-2-4-20110106号 IDC证:辽B-1-2-20070003号 )

    GMT+8, 2024-12-23 05:59 , Processed in 0.101353 second(s), 18 queries .

    X+ Open Developer Network (xodn.com)

    © 2009-2017 沈阳讯网网络科技有限公司

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