您当前的位置: 百科371电脑/网络C/C++ → 电脑/网络内容 退出登录 用户管理 用户注册
本类热门文章
相关文章
中原建材网
一道c语言程序设计题

减小字体 增大字体

问题:汉诺塔问题用c语言实现3个柱子,1,2,3号。1号柱子自上至下依次放1,2,3号方块。依次移动一个方块,最后实现在3号柱子上依旧是1,2,3顺序的方块排列。输出结果:how many disks?:3from where?[1-3]:1to where?[1-3]:3move disk 1 from pole 1 to pole 3move disk 2 from pole 1 to pole 2move disk 1 from pole 3 to pole 2move disk 3 from pole 1 to pole 3move disk 1 from pole 2 to pole 1move disk 2 from pole 2 to pole 3move disk 1 from pole 1 to pole 3  

细节自己改

#include"stdio.h"
void hanoi(int n,char a,char b,char c);
void move(char a,int n,char c);
void main()
{
int n;
char a,b,c;
printf("汉诺塔问题\n");
printf("n=");
scanf("%d",&n);
a='A';
b='B';
c='C';
hanoi(n,a,b,c);
}
void hanoi(int n,char a,char b,char c)
//将n个盘子从a通过b移动到c
{
if(n==1)
move(a,1,c); //将编号为1的盘子从a移动到c
else
{
hanoi(n-1,a,c,b);
move(a,n,c);//将编号为n的盘子从a移动到c
hanoi(n-1,b,a,c);
}
}
void move(char a,int n,char c)
{
printf("move %d from %c to %c\n",n,a,c);
}

如果你对汉诺塔问题用c语言实现3个柱子,1,2,3号。1号柱子自上至下依次放1,2,3号方块。依次移动一个方块,最后实现在3号柱子上依旧是1,2,3顺序的方块排列。输出结果:how many disks?:3from where?[1-3]:1to where?[1-3]:3move disk 1 from pole 1 to pole 3move disk 2 from pole 1 to pole 2move disk 1 from pole 3 to pole 2move disk 3 from pole 1 to pole 3move disk 1 from pole 2 to pole 1move disk 2 from pole 2 to pole 3move disk 1 from pole 1 to pole 3这个问题有好的意见或 建议,请留言
[] [返回上一页] [打 印]
电脑/网络评论 (评论内容只代表网友观点,与本站立场无关!)

用户名: 查看更多评论

分 值:100分 85分 70分 55分 40分 25分 10分 0分

内 容:

         (注“”为必填内容。) 验证码: 验证码,看不清楚?请点击刷新验证码

中原建材网 简单版 站长QQ:382546553