コード例 #1
0
ファイル: Hanoi.c プロジェクト: zy840055899/data-structure
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 );
        
    }
}
コード例 #2
0
ファイル: main.c プロジェクト: howardking/CodeDomain
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;
}
コード例 #3
0
ファイル: hannuota.c プロジェクト: howardking/LeetCode
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);
	}
}
コード例 #4
0
ファイル: Hanoi.c プロジェクト: zy840055899/data-structure
int main( void )
{
    int n;
    
    printf( "请输入要移动的盘子个数:" );
    scanf( "%d", &n );
    
    hannuota( n, 'A', 'B', 'C' );
}
コード例 #5
0
ファイル: main.c プロジェクト: howardking/CodeDomain
int main()
{
    int n;
    printf("Hello world!\n");
    scanf("%d",&n);
    hannuota(n,'a','b','c');
    system("pause");
    return 0;
}
コード例 #6
0
ファイル: hannuota.c プロジェクト: howardking/LeetCode
int main(void)
{
	int n = 5; /* 五阶汉诺塔 */
	char x = 'A';
	char y = 'B';
	char z = 'C';

	hannuota(n, x, y, z);

	return 0;
}
コード例 #7
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;
}