C语言--汉诺塔小游戏
汉诺塔小游戏的游戏规则:有三个柱子abc,其a柱上面有若干个圆盘,要求借助三个柱子将a柱上面的圆盘按顺序移动到c柱上去,并且c柱上每次只能增加一个圆盘,问需要移动多少次才可以完成此游戏。
一、首先理解题目
以4个圆盘举例
循环次数 | a柱 | b柱 | c柱 |
---|---|---|---|
开始数值 | 4 | 0 | 0 |
第一次循环 | 1 | 3 | 0 |
0 | 3 | 1 | |
第二次循环 | 2 | 1 | 1 |
2 | 0 | 1 | |
第三次循环 | 1 | 1 | 2 |
0 | 1 | 3 | |
第四次循环 | 0 | 0 | 4 |
经过四次循环,a柱上的圆盘全部按顺序放在c柱上
二、写出主函数
审题理清思路,接下来就是主函数的书写
int main()
{
int i=1;
printf("请输入圆盘个数:");
scanf("%d",&i);printf("%d\n",limit(i));
system("pause");
return 0;
}
三、自定义函数的书写
确定好主函数的框架,接着开始构建自定义函数内部,大体就是由一个循环函数构成:
int limit(int n)
{
int a=1,b=0,c=0,i=1,count=0;
for(i=1;i<=n;i++)
{
c=a+c;
b=n-i;
count=count+2;
}
return count-1;
}
四、总结
到此汉诺塔小游戏就完成啦!
C语言--汉诺塔小游戏相关推荐
- 【项目展示】自己用C语言编写的汉诺塔小游戏
本文目录 1.前言 2.什么是汉诺塔? 3.项目规格 4.基本思路 5.源代码 6.运行结果 7.感想与心得 8.未来规划 1.前言 昨儿个把自己大一时候写过的五子棋重构了一下,之后就在想着要不把不知 ...
- python汉诺塔游戏_Python实战:搭建汉诺塔小游戏,快和小伙伴一起玩玩吧
汉诺塔游戏:看谁能在短时间内将排好顺序的圈,按同样的顺放在另一根柱子上,每次只能动一个. 今天用python搭建汉诺塔小游戏(简约版) 代码亲测有效!源代码如下: #左中右塔用一个列表存储 left ...
- html实现汉诺塔小游戏
文章目录 1.设计来源 汉诺塔由来 1.1 主界面 1.2 游戏规则 1.3 游戏完成界面 2.效果和源码 2.1 动态效果 2.2 源代码 源码下载 作者:xcLeigh 文章地址:https:// ...
- 汉诺塔小游戏 c语言
相信大家在学习C语言嵌套的时候已经学习过经典问题汉诺塔了,我学习时就想能不能搞个汉诺塔的游戏出来,结果睡了一觉就给忘了.今天突然想起,搞出来与大家分享,水平一般,但符合汉诺塔规则.最终代码我放在文章最 ...
- c语言 汉诺塔游戏下载,使用C语言解决益智游戏——“汉诺塔”
说明: 文章所有内容截选自实验楼教程[3个C语言实例带你掌握递归方法论],教程里还有两个实例,感兴趣的可以点击查看: 文章主要是带你通过解决这个游戏来利用递归解决实际问题并掌握其核心思想,懂得如何使用 ...
- c语言汉诺塔实验报告,C语言汉诺塔的简单了解
汉诺塔详解 以4层为例 以下为我的拙见,还希望大佬雅正 要把汉诺塔移动到c 需要把1,2,3层移到b 把4移动到c 在吧123移动到b 但是一次只能动一块 所以我们目前要做的就是把上面三块移动到b 那 ...
- 汉诺塔算法 c语言实验报告,C语言汉诺塔算法原理分析与实践
汉诺塔游戏的规则:如下图所示,有三个柱子A,B,C,我们要做的是把A柱的所有圆盘,全部转移到C柱上,转移时遵循的规则如下: 1.每次只能移动一个圆盘 2.所有的大圆盘必须在小圆盘的下面 首先假设只有一 ...
- python递归详解+汉诺塔小案例_汉诺塔,python递归实现解法步骤
def hanoi(n,x,y,z):#函数实现n个盘子在x,y,z,移动 if n==1: print(x, ' --> ', z) else: hanoi(n-1,x,z,y)#将n-1层个 ...
- c语言函数汉诺塔不用move,C语言——汉诺塔问题(函数递归)
问题概述:古代有一个梵塔,塔内有3个座A,B,C.开始时A座上有64个盘子,盘子大小不等,大的在下,小的在上,有一个老和尚想把64个盘子从A座移动到C座,但是规定每次只允许移动一个盘,且在移动过程中在 ...
最新文章
- Linux(Nginx)+Java SpringBoot视频微服务搭建
- 如何让你的Nginx 提升10倍性能?
- linux虚拟用户的配置
- c 语言 string库,C语言编程必备资料(包括库函数,string类,stl库模板).docx
- @retention注解作用_分分钟带你玩转SpringBoot自定义注解
- 图像处理opencv(一)
- 关于VLC无法播放rtsp的问题分析
- 【sklearn学习】特征选择
- redis入门——集群篇
- mysql 5.6.34 二进制下载_mysql 5.6.34 二进制
- esxi忘记密码重置方法
- Java List集合排序 Java8 List集合排序方法 Java Lambda集合排序
- ipmitool 远程操作BMC控制服务器
- 如何修改游戏服务器数据包,游戏数据包的定义
- 由随机数生成器到宿命论
- Form表单提交数据的几种方式
- 手机无法被计算机识别,手机usb无法被电脑识别怎么办_电脑无法识别手机usb设备的解决方法...
- jzoj(senior)4208. 【五校联考1day1】线段树什么的最讨厌了
- Java 知识点整理-7.StringBuffer类+冒泡排序+选择排序+二分法+Arrays类+基本数据类型的包装类
- PAT(乙级)1076.Wifi密码(15)
热门文章
- python学习笔记(持续更新)
- Python爬虫教程-Python爬取股票数据过程详解
- Kindeditor.NET 实现多图上传保存
- 攻防世界_Crypto_sherlock
- 算法面试手撕代码高频题汇集
- 数据挖掘与机器学习:Apripori算法
- CSR8675的DSP学习笔记——离线调试与仿真
- java祖冲之加密算法_对称加密和非对称加密
- 27. Spark : org.apache.spark.sql.AnalysisException: Reference 'XXXX' is ambiguous
- 【通俗理解线性代数】 -- 矩阵的相似对角化