Advertisement

C语言函数递归在研究汉诺塔问题中的应用

阅读量:

C语言解决汉诺塔问题《经典》

首先需要明确汉诺塔究竟是一种怎样的问题形式。
例如,假设有A、B、C三根柱子,其中A柱上放置了三个盘子,最上方为最小的盘子,最下方为最大的盘子;目标是借助B柱,将这三个盘子全部移动至C柱上,并且在移动过程中必须遵循每次只能移动一个盘子,并最终在C柱上按照从大到小的顺序依次叠放盘子;该问题的求解过程中涉及函数的使用,并通过函数的递归方式实现了对汉诺塔问题的解决。
具体的代码实现方式如下:

复制代码
    // hanoi.cpp : Defines the entry point for the console application.
    //
    
    #include <stdio.h>
    #include "stdafx.h"
    
    void hanoi(int n, char A, char B, char C)  //n代表盘子数
    {
    	if(n==1)
    		printf("%c--->%c\n",A, C);
    	else
    	{
    		hanoi(n-1, A, C, B);  //A绕过C去到B上
    		printf("%c--->%c\n", A, C);
    		hanoi(n-1, B, A, C);

全部评论 (0)

还没有任何评论哟~