// 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;
}
汉诺塔问题
最新推荐文章于 2022-11-03 11:34:58 发布