汉诺塔(递归)

简介: 汉诺塔(递归)

题目:


一个庙里有三个柱子,第一个有64个盘子,从上往下盘子越来越大。
要求庙里的老和尚把这64个盘子全部移动到第三个柱子上。
移动的时候始终只能小盘子压着大盘子。而且每次只能移动一个。


代码:


#include <cstdio>
//将移动的打印 
void move(char x,char y)
{
  printf("%c->%c\n",x,y);
}
void hanno(int n,char a,char b,char c)
{
  if(n==1)
  move(a,c);
  else{
  hanno(n-1,a,c,b);
  move(a,c);
  hanno(n-1,b,a,c);
  }
}
int main()
{
  int n;
  scanf("%d",&n);
  hanno(n,'A','B','C');
  return 0;
}


三层的示例图,感觉还是有点晕晕的,时间会给我答案吧


相关文章
|
5月前
|
算法 C语言
汉诺塔问题(函数递归)
汉诺塔问题(函数递归)
50 0
|
6月前
|
Java Python
汉诺塔递归问题,递归思路详解
汉诺塔递归问题,递归思路详解
93 0
|
6月前
|
机器学习/深度学习
利用函数递归求汉诺塔问题
利用函数递归求汉诺塔问题
55 0
汉诺塔 递归问题
汉诺塔 递归问题
84 0
递归问题的实际运用:汉诺塔问题
递归问题的实际运用:汉诺塔问题
111 0
递归问题的实际运用:汉诺塔问题
|
C++ C语言
你是真的“C”——函数递归详解汉诺塔
利用函数递归手把手求解汉诺塔
108 0
你是真的“C”——函数递归详解汉诺塔
|
C语言
【C】青蛙跳台阶和汉诺塔问题(递归)
【C】青蛙跳台阶和汉诺塔问题(递归)
124 0
【C】青蛙跳台阶和汉诺塔问题(递归)
汉诺塔(递归+ 非递归版)
汉诺塔问题(又称为河内塔问题),是一个大家熟知的问题。在A,B,C三根柱子上, 有n个不同大小的圆盘(假设半径分别为1-n吧),一开始他们都叠在我A上(如图所示),你的目标是在最少的合法移动步数内将所有盘子从A塔移动到C塔。 游戏中的每一步规则如下:
242 1
汉诺塔(递归+ 非递归版)