机票推荐
- ·广州到墨尔本往返机票-¥4580
- ·广州到开普敦往返机票-¥3856
- ·广州到慕尼黑往返机票-¥2995
- ·香港到巴黎往返机票-¥2180
- ·香港到伦敦往返机票-¥2199
- ·香港到加拿大往返机票-¥4800
- ·上海到布达佩斯往返机票-¥2916
- ·上海到巴黎往返机票-¥2700
- ·北京到暹粒往返机票-¥2704
- ·北京到关岛往返机票-¥2850
热门机票
- ·广州到突尼斯往返机票-¥3883
- ·广州到暹粒往返机票-¥2050
- ·香港到约翰内斯堡往返机票-¥2761
- ·香港到伦敦往返机票-¥2199
- ·上海到巴黎往返机票-¥2700
- ·上海到芝加哥往返机票-¥3070
- ·北京到休斯顿往返机票-¥3790
- ·北京到阿克拉往返机票-¥3692
您现在的位置:首页>> 河内塔
河内塔
河内塔(又称汉诺塔)问题是印度的一个古老的传说。开天辟地的神勃拉玛在一个庙里留下了三根金刚石的棒,第一根上面套着64个圆的金片,最大的一个在底下,其余一个比一个小,依次叠上去,庙里的众僧不倦地把它们一个个地从这根棒搬到另一根棒上,规定可利用中间的一根棒作为帮助,但每次只能搬一个,而且大的不能放在小的上面。解答结果请自己运行计算,程序见尾部。面对庞大的数字(移动圆片的次数)18446744073709551615,看来,众僧们耗尽毕生精力也不可能完成金片的移动。后来,这个传说就演变为汉诺塔游戏:
1.有三根杆子A,B,C。A杆上有若干碟子
2.每次移动一块碟子,小的只能叠在大的上面
3.把所有碟子从A杆全部移到C杆上
问题解决步骤:2的n次方-1,n为河内塔的阶数
C语言精简算法
/* Copyrighter by SS7E */
#include<stdio.h> /* Copyrighter by SS7E */
void hanoi(int n,char A,char B,char C) /* Copyrighter by SS7E */
{
if(n==1)
{
printf("Move disk %d from %c to %c
",n,A,C);
}
else
{
hanoi(n-1,A,C,B); /* Copyrighter by SS7E */
printf("Move disk %d from %c to %c
",n,A,C);
hanoi(n-1,B,A,C); /* Copyrighter by SS7E */
}
}
main() /* Copyrighter by SS7E */
{
int n;
printf("请输入数字n以解决n阶汉诺塔问题:
");
scanf("%d",&n);
hanoi(n,'A','B','C');
}/* Copyrighter by SS7E */
你可能感兴趣的内容
- ·广州到纽卡斯尔往返机票-¥3099
- ·广州到里斯本往返机票-¥2899
- ·广州到洛杉矶往返机票-¥3670
- ·香港到大阪往返机票-¥1892
- ·香港到休斯顿往返机票-¥4092
- ·香港到东京往返机票-¥1981
- ·上海到阿尔及尔往返机票-¥3250
- ·上海到阿德莱德往返机票-¥3840
- ·北京到福冈往返机票-¥2030
- ·北京到金边往返机票-¥2450
- ·如何理解“河内凶,则移其民于河
- ·河内国
- ·河内县
- ·河内圆茶
- ·“河内凶,则移其民于河东”的“
- ·河内新娘
- ·河内塔
- ·河内