温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

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

发布时间:2020-06-28 10:43:24 来源:网络 阅读:546 作者:庄勇_nojava 栏目:编程语言

#include <stdio.h>

/*

思路: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);

}

}


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI