大一汉诺塔C语言问题,求代码
答案:1 悬赏:70 手机版
解决时间 2021-03-26 03:49
- 提问者网友:做自己de王妃
- 2021-03-25 07:40
大一汉诺塔C语言问题,求代码
最佳答案
- 五星知识达人网友:患得患失的劫
- 2021-03-25 07:56
#include
int step=0;
void move(char s, char t, int d){
int i,j;
step++;
printf("第 %d 步: %c->%c\n",step,s,t);
}
void hanoi(char a, char b, char c, int n){
if(n==1){
move(a,b,n);
}else{
hanoi(a,c,b,n-1);
move(a,b,n);
hanoi(c,b,a,n-1);
}
}
int main(){
int i,n;
printf("n=?");
scanf("%d",&n);
hanoi('A','C','B',n);
return 0;
}追问能否直接输出盘子的移动次数?
比如输n=4,输出15追答#include
long step=0;
void hanoi(char a, char b, char c, int n){
if(n==1){
step++;
}else{
hanoi(a,c,b,n-1);
step++;
hanoi(c,b,a,n-1);
}
}
int main(){
int i,n;
printf("n=?");
scanf("%d",&n);
hanoi('A','C','B',n);
printf("%ld\n", step);
return 0;
}
int step=0;
void move(char s, char t, int d){
int i,j;
step++;
printf("第 %d 步: %c->%c\n",step,s,t);
}
void hanoi(char a, char b, char c, int n){
if(n==1){
move(a,b,n);
}else{
hanoi(a,c,b,n-1);
move(a,b,n);
hanoi(c,b,a,n-1);
}
}
int main(){
int i,n;
printf("n=?");
scanf("%d",&n);
hanoi('A','C','B',n);
return 0;
}追问能否直接输出盘子的移动次数?
比如输n=4,输出15追答#include
long step=0;
void hanoi(char a, char b, char c, int n){
if(n==1){
step++;
}else{
hanoi(a,c,b,n-1);
step++;
hanoi(c,b,a,n-1);
}
}
int main(){
int i,n;
printf("n=?");
scanf("%d",&n);
hanoi('A','C','B',n);
printf("%ld\n", step);
return 0;
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯