Linux汉诺塔程序,汉诺塔程序

/**

**典型递归问题汉诺塔

*一块板上有三根针,A,B,C。A针上套有64个大小不等的圆盘,大的在下,小的在上。

*要把这64个圆盘从A针移动C针上,每次只能移动一个圆盘,移动可以借助B针进行。

*但在任何时候,任何针上的圆盘都必须保持大盘在下,小盘在上。

**/

#includeint main()

{

int num = 4;

int ret = 0;

char A = 'A';

int N = num;

char B = 'B',C = 'C';

ret=move(A, B, C, N );

if( ret < 0 )

{

printf(" Call move  error !" );

}

return 0;

}

int move( char a,char b,char c,int num )

{

if( num > 1 )

{

move( a,c,b,num-1 );

printf(" %c -- %c \n", a,c);

move( b,a,c,num-1 );

}else if( 1 == num )

{

printf("%c--&gt%c\n",a,c);

}else

{

printf(" The Num is error ! \n");

return (-1);

}

return 0;

}

典型的递归问题,注意所有的步骤跟两个盘子是一样的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值