代码:
#include <stdio.h>
/********* Begin *********/
//该函数表示将a中的n个元素借用辅助作用的b移动到c
void move(int n,char a,char b,char c){
if(n==1){
printf("%c -> %c\n",a,c);
}
else if(n==2){
printf("%c -> %c\n",a,b);
printf("%c -> %c\n",a,c);
printf("%c -> %c\n",b,c);
}
//当需要移动的元素超过2个时,
//分三步:1、将a中的n-1个元素借助c移到b;
//2、将a中最后一个元素移到c中 ;
//3、将b中的n-1个元素借助a移到c中。
else{
move(n-1,a,c,b);
move(1,a,b,c);
move(n-1,b,a,c);
}
}
int main()
{
int n;
printf("请输入所要移动的元素个数:") ;
scanf("%d",&n);
char A,B,C;
//注意使用char类型的数据时,不能遗漏单引号
move(n,'a','b','c'); //从a上全部移动到c上的过程。
return 0;
}
/********* End *********/
结果: