void hannuota( int n, char A, char B, char C ) { /* 如果是1个盘子 直接将A柱子上的盘子从A移动到C 否则 先将A柱子上的n-1个盘子借助于C移动到B 直接将A柱子上的盘子从A移到C 最后将B柱子上的n-1借助A移动到C */ i++; if( 1 == n ) { printf( "将编号为%d的盘子从%c柱子移动到%c柱子\n", n, A, C ); printf("%d", i); } else { hannuota( n-1, A, C, B ); printf( "将编号为%d的盘子从%c柱子移动到%c柱子\n", n, A, C ); hannuota( n-1, B, A, C ); } }
void hannuota(int n, char a, char b, char c) { if (n!=0){ hannuota(n-1,a,c,b); printf("把第%d个盘子从%c移到%c柱",n,a,b); hannuota(n-1,c,b,a); } return; }
void hannuota(int n, char x, char y, char z) { if (1 == n){ printf("%d move %c to %c\n", n, x, z); }else{ hannuota(n-1, x, z, y); printf("%d move %c to %c\n", n-1, x, z); hannuota(n-1, y, x, z); } }
int main( void ) { int n; printf( "请输入要移动的盘子个数:" ); scanf( "%d", &n ); hannuota( n, 'A', 'B', 'C' ); }
int main() { int n; printf("Hello world!\n"); scanf("%d",&n); hannuota(n,'a','b','c'); system("pause"); return 0; }
int main(void) { int n = 5; /* 五阶汉诺塔 */ char x = 'A'; char y = 'B'; char z = 'C'; hannuota(n, x, y, z); return 0; }
int main(void) { char ch1 = 'A'; char ch2 = 'B'; char ch3 = 'C'; int n; printf("请输入要移动盘子的个数: "); scanf("%d", &n); hannuota(n, 'A', 'B', 'C'); return 0; }