怎样用循环实现汉诺塔算法??
w_shd 2002-10-06 04:24:41 把盘子从桩1移动到桩3。
用递归实现汉诺塔是可以的:
#include <stdio.h>
void han(int,int,int,int);
main(){
int num;
int l1=1,l2=2,l3=3;
printf("Please input the number:");
scanf("%d",&num);
han(num,l1,l2,l3);
return 0;
}
void han(num,l1,l2,l3){
if(num==1)
printf("%d -> %d\n",l1,l3);
else{
han(num-1,l1,l3,l2);
printf("%d -> %d\n",l1,l3);
han(num-1,l2,l1,l3);
}
}
但是怎样用迭代的办法实现呢???
#include <stdio.h>
main(){
int num;
int i=1,j=1,k=1;
printf("Please input number:");
scanf("%d",&num);
if(num==1)
printf("1 -> 3");
else{
//怎样实现呢????
}
return 0;
}