// 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; }
原文:http://www.cnblogs.com/parislv/p/3581820.html