#include <stdio.h>
#include <string.h>
#include <windows.h>
int sumNumber = 0;
void move(char x,char y){
printf("%c->%c\n",x,y);
}
int hanoiTest(int n,char one,char two,char three){// 将n个盘子从one移到three,过程中借助two
if(n == 1){
move(one,three);
sumNumber++;
return sumNumber;
}else{
hanoiTest(n-1,one,three,two);
move(one,three);//此时输出的是第n个盘子的移动方法
sumNumber++;
hanoiTest(n-1,two,one,three);
}
return sumNumber;
}
int main() {
int n;
printf("please enter a number :");
scanf("%d",&n);
if(n == 0){
printf("The sumNumber is 0");
return 0;
}
int result = hanoiTest(n,'A','B','C');
printf("Move steps are %d",result);
system("pause");
return 0;
}
汉诺塔问题
于 2023-03-29 11:42:38 首次发布