当前位置: 代码迷 >> C语言 >> Hanoi塔问题
  详细解决方案

Hanoi塔问题

热度:285   发布时间:2007-12-23 14:50:50.0
Hanoi塔问题
这里有2个塔,A B C 怎么样把A的盘子按照A上面的大小顺序逻到C上!
假设这里A上面是N呢   
  谁帮我看下 ...
搜索更多相关的解决方案: Hanoi  

----------------解决方案--------------------------------------------------------
百度知道里面找的
void move(char x,char y){
printf("%c-->%c\n",x,y);
}

void hanoi(int n,char one,char two,char three){
/*将n个盘从one座借助two座,移到three座*/
if(n==1) move(one,three);
else{
hanoi(n-1,one,three,two);
move(one,three);
hanoi(n-1,two,one,three);
}
}

main(){
int n;
printf("input the number of diskes:");
scanf("%d",&n);
printf("The step to moving %3d diskes:\n",n);
hanoi(n,'A','B','C');
return 0;
}
----------------解决方案--------------------------------------------------------
呵呵 !
好像任意一本C语言教材都会有 的 哦 !
----------------解决方案--------------------------------------------------------