首页 > 其他 > 详细

汉诺塔问题

时间:2014-03-05 18:40:13      阅读:459      评论:0      收藏:0      [点我收藏+]
bubuko.com,布布扣
// Hanoi.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"

#include <stdio.h>

int count = 0; //全局变量,保存移动次数

/*
汉诺塔问题,将n个盘子从A移动至C,借助C,输出移动方式和移动次数
*/
void Hanoi(int n, char A, char B, char C)
{
    if(n == 1)
    {
        printf("Move %c ----> %c \n", A, C);
        count++;
        return;
    }
    else
    {
        Hanoi(n-1, A, C, B); //将前n-1个盘子借助于C移动至B
        printf("Move %c ----> %c \n", A, C); //将第n个盘子移动至C
        count++;
        Hanoi(n-1, B, A, C); //将B的n-1个盘子借助于A移动至C
    }
}


int _tmain(int argc, _TCHAR* argv[])
{
    Hanoi(7,A,B,C);
    printf("Move Times: %d.\n",count);
    getchar();
    return 0;
}
bubuko.com,布布扣

汉诺塔问题,布布扣,bubuko.com

汉诺塔问题

原文:http://www.cnblogs.com/parislv/p/3581820.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!