今晚无事瞎写了一个汉诺塔,没看课本也没刻意查资料全凭记忆理解弄了个出来,算是这样了。
理解才是OK。
看着这代码简单,但要说得透彻却不容易,这简洁递归代码的底层信息量还是挺难吃得消的。

程序代码:
#include<stdio.h>
void move( char , char , char , unsigned );
int main( void )
{
unsigned n;
scanf( "%u",&n );
move( 'A' , 'B' , 'C' , n );
return 0;
}
void move( char a , char b , char c , unsigned n )
{
if ( n == 0 )
return ;
move( a , c , b , n - 1 );
printf( "%c move %c\n" , a , c );
move( b , a , c , n - 1 );
}
这代码看着简单,但不敢说是个人都能不查资料就地编程出来,关键是中间那两句递归理解起来真是很难说透彻的。
[此贴子已经被作者于2020-11-23 14:12编辑过]