经典递归小程序--汉诺塔

#include

创新互联公司是一家专注于做网站、网站设计与策划设计,奎屯网站建设哪家好?创新互联公司做网站,专注于网站建设十多年,网设计领域的专业建站公司;建站业务涵盖:奎屯等地区。奎屯做网站价格咨询:028-86922220

/*

思路:1、将1到n-1号盘子借助C移到B上

 2、将n号盘子移到C上

 3、将1到n-1号盘子借助A移到C上

  */

//初始化步数

int i = 0;

void move(int,char,char);

void hannuota(int,char,char,char);

void main(void){

int n;

printf("请输入汉诺塔盘子的个数:");

scanf("%d",&n);

hannuota(n,'A','C','B');

}

//移动盘子方法

void move(int n,char from,char to){

printf("第%d步,将%d号盘子从%c移到%c\n",++i,n,from,to);

}

//汉诺塔递归算法

void hannuota(int n,char from,char to,char depend_on){

if(n == 1){

move(1,from,to);

}else{

hannuota(n-1,from,depend_on,to);

move(n,from,to);

hannuota(n-1,depend_on,to,from);

}

}


网页名称:经典递归小程序--汉诺塔
本文来源:http://myzitong.com/article/jcejde.html