编码连接游戏
这是一个汉诺塔程序。调试时,最好不要输入大于15的数,因为每一个大数。
结果将是两倍的步骤。除非你有耐心等待结果。河内塔在欧洲。
一款流行的游戏,有A、B、c、B、c三个杆子,A杆子上有几个从大到小的圆盘,大的在下面。
小的在上面,B和C都是空杆。请将A杆上的所有碟片倒在其他杆上,或者B或C上,然后再倒。
在这个过程中,不能把大的压在小的上面。示例程序如下:
# include & ltstdio.h & gt
int I = 0;
主()
{
无符号n;
printf("请输入盘数:");
scanf("%d ",& ampn);
printf(" \ tneedle:\ ta \ t b \ t c \ n ");
movedisc(n,' a ',' c ',' b ');
printf("\t总计:%d\n ",I);
getch();
}
移动光盘(n,从唱针,唱针,使用唱针)
无符号n;
用针充电;
{
如果(n & gt0)
{
movedisc(n-1,fromneedle,usingneedle,toneedle);
i++;
开关(从针)
{
案例“a”:开关(音调开关)
{
事例“b”:printf(" \ t[% d]:\ t % 2d-& gt;%2d\n ",I,n,n);
打破;
case ' c ':printf(" \ t[% d]:\ t % 2d-& gt;%2d\n ",I,n,n);
打破;
}
打破;
情况“b”:开关(音调开关)
{
事例“a”:printf(" \ t[% d]:\ t % 2d & lt;- %2d\n ",I,n,n);
打破;
case ' c ':printf(" \ t[% d]:\ t \ t % 2d-& gt;%2d\n ",I,n,n);
打破;
}
打破;
案例“c”:开关(音调开关)
{
事例“a”:printf(" \ t[% d]:\ t % 2d & lt;- %2d\n ",I,n,n);
打破;
事例“b”:printf(" \ t[% d]:\ t \ t % 2d & lt;- %2d\n ",I,n,n);
打破;
}
打破;
}
movedisc(n-1,使用needle,toneedle,from needle);
}
}