汉诺塔加强版

汉诺塔加强版

这是汉诺塔1的升级版。 大梵天创造世界的时候做了三根金刚石柱子(A,B,C),在A柱子上从下往上按照大小顺序摞着n片黄金圆盘。大梵天命令啊仁把圆盘从下面开始按大小顺序重新摆放在C柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。 大梵天想为难啊仁,不想让他那么早去约会,于是想让他说出每一步的操作。 大梵天对圆盘从上到下进行编号1~n,啊仁要说出每步的操作,x from xx to xx,(具体见样例)在说出每步操作之前,需要说出至少几步能完成任务。

输入格式:
输入第一行为一个整数n(2<=n<=20)。

输出格式:
输出一个n为最快能用几次移动完成任务。 接下来n行格式为x from xx to xx表示次的操作。行末无空格。

输入样例:
2
输出样例:
3
1 from A to B
2 from A to C
1 from B to C

# include<stdio.h>
# include<math.h>
 int k,n;
  void mov(int n,char a,char c,char b){
     if(n==0) return ;	
	 mov(n-1,a,b,c);	
	  printf("%d from %c to %c\n" ,n, a,c);
	 mov(n-1,b,c,a);
	 }
	 int h[110];
int main(){
int z;	
scanf("%d",&n);
z=pow(2,n)-1;	
printf("%d\n",z);	
mov(n,'A','C','B');	
return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值