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)
还没有任何评论哟~
