汉诺塔问题属于经典的算法问题,是我们初步学习算法用于实际上手操作的一次很好的练习。这部分代码可体现每一步是哪两根柱子之间的方块移动和统计一共移动多少次。

​
#include <stdio.h>
int l=0;//用于计数移动了几次
void move(int n,char a,char b,char c)//n表示要移动的块数、a表示最左的柱子、b表示中间的柱子、c表示右边的柱子
{if(n==1){printf("\t%c->%c\n",a,c);}else{move (n-1,a,c,b);printf("\t%c->%c\n",a,c);move(n-1,b,a,c);}l++;
}int main()
{int n,m;printf("请输入要移动的块数:");scanf("%d",&n);if(n<=0)//该循环结构可不要,就是确保n为正整数,对于结果而言无影响 {while(n<=0){printf("请输入正确的块数:");scanf("%d",&m);n=m;}  move(n,'a','b','c');}else
{move(n,'a','b','c');
}
printf("共移动%d步\n",l);
return 0;//jio的还行就点个赞吧,让我搞点积分
}​

运行结果如下

用C实现汉诺塔问题(体现每次移动时方块的位置变化和计算共移动多少次)相关推荐

  1. python学习-之汉诺塔实现

    先上代码: ''' 遇到问题没人解答?小编创建了一个Python学习交流QQ群:857662006 寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书! ''' #move1/ ...

  2. 1.1_简单递归 (汉诺塔问题 / 进制转换)

    --- 递归三定律 ---1. 基本结束条件,解决最小规模问题2. 缩小规模,向基本结束条件演进3. 调用自身来解决已缩小规模的相同问题 递归实例:汉诺塔问题 n 个盘子时:1. 把 n-1 个圆盘从 ...

  3. 汉诺塔问题解法心路历程及C语言学习请教

    本篇博客只是一些个人感想和疑问,不适合作为汉诺塔问题的求解教程. 自学C语言两个多月,第一次摸爬滚打写出了汉诺塔问题的代码,关于汉诺塔问题的背景这里不再过多描述,以下是个人一些思考历程(第一次发布博客 ...

  4. 汉诺塔IV,汉诺塔V

    汉诺塔IV Problem Description 还记得汉诺塔III吗?他的规则是这样的:不允许直接从最左(右)边移到最右(左)边(每次移动一定是移到中间杆或从中间移出),也不允许大盘放到小盘的上面 ...

  5. 汉诺塔代码图文详解(递归入门)

    游戏规则: 已知条件 存在A,B,C三根柱子,A上套有N片圆盘 (如下图) 目的 将A上的所有圆盘移到C上 约束条件 每次只能移动一片圆盘,且整个过程中只能出现小圆盘在大圆盘之上的情况 首先我们模拟( ...

  6. 汉诺塔python3函数编写和过程分析

    写在最前面,这个是在学习廖雪峰python3教程的一个学习笔记 因为基础不熟,所以就写了这篇博客来当做一个笔记 如若有不对的额地方,欢迎指出(就不欢迎打脸了,打脸怕疼) #!/usr/bin/env ...

  7. 汉诺塔小游戏 c语言

    相信大家在学习C语言嵌套的时候已经学习过经典问题汉诺塔了,我学习时就想能不能搞个汉诺塔的游戏出来,结果睡了一觉就给忘了.今天突然想起,搞出来与大家分享,水平一般,但符合汉诺塔规则.最终代码我放在文章最 ...

  8. 深度理解递归,手撕经典递归问题(汉诺塔,青蛙跳台阶),保姆级教学。

    目录 序言: 一.函数递归( recursion) 二.递归的两个必要条件 三.递归小问题 (1)接受一个整型值(无符号),按照顺序打印它的每一位 (2)编写函数不允许创建临时变量,求字符串的长度(利 ...

  9. 汉诺塔算法python_python实现汉诺塔算法

    题目: 汉诺塔给出最优解,如果对汉诺塔的定义有不了解,请翻看数据结构教材. 除了最基本的之外,还有一题,给定一个数组,arr=[2,3,1,2,3],其含义是这是一个有5个圆盘的汉诺塔,每一个数字代表 ...

最新文章

  1. grpc框架_分布式RPC框架dubbo、motan、rpcx、gRPC、thrift简介与性能比较
  2. 5.34. PECL FAQ
  3. 计算机主板上电源怎么插,教大家电脑主板上的电源开关插头怎么接
  4. python计算思维训练文件操作与异常处理_054 Python程序设计思维
  5. 给基于SAP Spartacus 3.4.1 版本的 Storefront 添加对服务器端渲染的支持
  6. 竞赛发布|100万奖金寻DT时代“最强大脑”!
  7. SetInterval(循环计时器)
  8. 开发Adobe AIR的原生扩展
  9. hadoop 概要
  10. 四类文法以及上下文有(无)关的理解【转】
  11. Halcon学习路线——Blob分析(2)
  12. 五大健身房管理软件实测超详细解读,健身房管理软件排名!
  13. Excel删除自定义模板
  14. SQL 求同比 环比
  15. 抖音的计算机技术优势,抖音系统的四大优势是什么?
  16. CPU卡调试助手(FMCOS)
  17. 用CSS实现阴阳八卦图等图形
  18. signature=79628ed6ceb6a7f7dd3c2bec70171b45,Hvad kortene kan fortælle om kultur- og naturlandskabet
  19. iOS开发系列--通讯录、蓝牙、内购、GameCenter、iCloud、Passbook详解
  20. 小穴位大健康——李智

热门文章

  1. ansible命令应用
  2. 深度linux任务栏在哪,更新Deepin 20后任务栏dde-dock消失不见的暂时解决
  3. 用html5做课件,涨姿势┃一分钟PPT轻松转化H5,让“课件”动起来
  4. 基于Lua的新语言NL
  5. elk7.7.1【系列十六】java 封装 kql 查询条件
  6. 仿淘宝购买详情页购买缩小动画
  7. 智能制造、工业互联网、数字化转型哪家强?请收好这份榜单!
  8. 美国大学计算机牛校简介
  9. 国密算法的ekey基本使用的说明
  10. mysql sandbox_用mysql_sandbox建立快速测试环境