C 练习实例98-汉诺塔(完结撒花)

递归

#include <stdio.h>
int sumN(int n)
{if( n == 1 )return 1;elsereturn sumN(n-1)+n;
}
int main()
{printf("数列n的前%d项和为: %d",100,sumN(100));return 0;
}
数列n的前100项和为: 5050

汉诺塔

人为分析

A        B        C        3个柱子

当只有1个盘子时:

A --> C

当有2个盘子时:

A --> B

A --> C

B --> C

当有3个盘子时:

A --> C

A --> B

C --> B

A --> C

B --> A

B --> C

A --> C

思路分析

假设总共需要移动n个盘子
1.将A柱上的n-1个盘子借助C柱移向B柱
2.将A柱上仅剩的最后一个盘子移向C柱
3.将B柱上的n-1个盘子借助A柱移向C柱

具体怎么挪的,大可不必费神!

代码实现

#include <stdio.h>
void move(int n, char A, char B, char C)
{if(n==1){printf("%c --> %c\n", A, C);//只有一个盘子的情况}else{move(n-1, A, C, B);printf("%c --> %c\n", A, C);move(n-1, B, A, C);}
}
int main()
{move(2,'A','B','C');return 0;
}

 参数为2运行结果

A --> B
A --> C
B --> C

参数为3运行结果

A --> C
A --> B
C --> B
A --> C
B --> A
B --> C
A --> C

与手动分析无异

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/797528.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

探索未来游戏:生成式人工智能AI如何重塑你的游戏世界?

生成式人工智能&#xff08;Generative AI&#xff09;正以前所未有的速度改变着各行各业的运作模式。其中&#xff0c;游戏产业作为科技应用的前沿阵地&#xff0c;正经历着前所未有的变革。本文将探讨生成式人工智能如何重塑游戏产业&#xff0c;以及这一变革背后的深远影响。…

一、Docker部署GitLab(详细步骤)

Docker部署GitLab&#xff08;详细步骤&#xff09; 一、拉取镜像二、启动容器三、修改配置四、修改密码五、浏览器访问 一、拉取镜像 docker安装教程&#xff1a;https://qingsi.blog.csdn.net/article/details/131270071 docker pull gitlab/gitlab-ce:latest二、启动容器 …

MySQL-相关数据类型

MySQL-数据类型 整数类型 整数类型包含以下五种&#xff1a; 整数类型字节说明tinyint1一般用于枚举数据&#xff0c;比如系统设定取值范围很小且固定的场景。smallint2可以用于较小范围的统计数据&#xff0c;比如统计工厂的固定资产库存数量等。mediumint3用于较大整数的计…

邮件服务器:Postfix

文章目录 邮件服务器的功能与工作原理电子邮件的问题Mail server与DNS 之间的关系邮件传输所需要的组件(MTA、MUA、MDA)以及相关协议用户收信时服务器端所提供的相关协议&#xff1a;MRA电子邮件的数据内容 使用Postfix与Dovecot部署邮件系统部署基础的电子邮件系统配置Postfix…

软件工程

开发模型 瀑布模型 用于结构化模型开发 适用需求明确或者二次开发 原型模型 适用需求不明确 演化模型 增量模型 适用需求不明确 先做一块&#xff0c;再做一块&#xff0c;这样不断的对核心功能的审视&#xff0c;降低风险 螺旋模型 由多个模型组合成 适用需求不明…

政校企三方牵手打造新质生产力,共建城市供应链安全检测中心

​4月3日 十堰市经开区政府 x 开源网安 战略合作签约仪式 圆满完成 4月3日&#xff0c;开源网安与十堰市经济技术开发区政府、湖北工业职业技术学院、十堰市经开建投签约仪式在十堰国际会展中心圆满完成。本次签约后&#xff0c;签约方将共建十堰市智能网联汽车网络安全测试…

什么是数据治理?你都了解吗?

在当今数字化时代&#xff0c;数据已成为企业重要的战略资产。有效管理数据对于企业提高运营效率、降低成本、做出更好的决策至关重要。数据治理作为一种重要的管理方法&#xff0c;可以帮助企业确保数据的质量、安全、合规性和有效利用。 一、数据治理的定义与重要性 近日&a…

(南京观海微电子)——TFT驱动原理

TFT液晶显示器件是指在液晶显示器件的每个像素上都连接一个薄膜场效应晶体管。这个场效应管制作在液晶显示器件的玻璃上。每个场效应管独立驱动一个像素&#xff0c;从而可以实现高速度、高亮度、高对比度的显示效果。 TFT液晶显示器件的驱动特性取决于场效应管的工作特性。场效…

Electron 是一个流行的框架

Electron 是一个流行的框架&#xff0c;允许开发者使用 JavaScript, HTML 和 CSS 构建跨平台的桌面应用程序。如果你想将你的 Electron 应用程序打包成一个 APK 文件&#xff08;Android 应用程序包&#xff09;&#xff0c;那么你可能会遇到一些问题&#xff0c;因为 Electron…

SpringBoot实现邮箱验证

目录 1、开启邮箱IMAP/SMTP服务&#xff0c;获取授权码 2、相关代码 1、使用配置Redis&#xff08;用于存储验证码&#xff0c;具有时效性&#xff09; 2、邮箱依赖和hutool&#xff08;用于随机生成验证码&#xff09; 3、配置Redis和邮箱信息 4、开启Redis服务 5、编写发送…

顺序表应用——通讯录实现

目录 前言&#xff1a; 一、开始菜单 二、通讯录代码实现 2.1 通讯录初始化 2.2 增加联系人 2.3 删除联系人 2.4 修改联系人 2.5 通讯录的销毁 三、总代码 最后&#xff1a; 前言&#xff1a; 通讯录实现的基础是基于顺序表的实现&#xff0c;对于顺序表如有疑惑之处可翻…

[XJTU-SY-BD]设计06 处理C/Python 结构体互操作

0.引言 很多时候,会涉及C/Python混合编程,下面给出一个建立在进程隔离基础上的C/Python计算样例 1.C侧的包裹代码 注意这里的最大问题是利用共享内存的传参。二进制信息可以通过共享内存有效传递,在真正的工业代码中,无需频繁创建共享内存,它可以一直存在。 #define S…

SpringMVC初始化工程

SpringMVC初始化工程 本文采用maven作为构建工具,SpringMVC作为主框架。 创建一个maven的web工程,并配置pom文件<!-- pom.xml --> <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0&qu…

【nginx】nginx通过配置文件阻止海外ip访问

本文首发于 ❄️慕雪的寒舍 nginx通过配置文件阻止海外ip访问 说明 因为最近发现有不少刷评论的脚本&#xff0c;在nginx请求日志里面看了眼&#xff0c;都是海外的ip&#xff0c;反正我的博客也是全中文。所以干脆把海外ip禁止artalk评论。 在/etc/nginx/nginx.conf中可以看…

海外代理IP购买指南:住宅IP代理VS.数据中心代理IP

在选择海外IP代理服务时&#xff0c;您将面临一个关键的问题&#xff1a;是选择住宅代理IP还是数据中心代理IP&#xff1f;这两者之间存在着根本性的不同&#xff0c;涉及到性能、隐私和成本等方面的考虑。住宅代理IP通常来自真实的住宅网络连接&#xff0c;更难被检测到。数据…

Winforms中的ArgumentOutOfRangeException异常

// 定时器事件 只处理计时逻辑 每隔1000毫秒会被调用。 private void timer1_Tick(object sender, EventArgs e) {count; //记录当前秒label3.Text (time - count).ToString() " 秒"; progressBar1.Value count;if(count time){timer1.Stop(); //关闭计时Sys…

MotionBuilder 脚本执行

目录 MediaPipe_Pose_in_MotionBuilder 你可以用以下几种方式执行你的脚本&#xff1a; MediaPipe_Pose_in_MotionBuilder https://github.com/Ndgt/MediaPipe_Pose_in_MotionBuilder/blob/main/PoseLandmark.py tcp通信 https://github.com/nils-soderman/motionbuilder-s…

解决Android Studio Loading Devices问题

目录 一、解决办法&#xff08;普通&#xff09;&#xff1a; 二、解决办法的优化 三、解决办法的进一步优化 问题&#xff1a;windows 11 电脑&#xff0c;每次开机&#xff0c;打开Android Studio,都会显示Loading Devices&#xff0c;连接不上设备。 原因&#xff1a;adb…

Jpa中QueryPlanCache查询计划JPQL缓存

// 所以,项目大,缓存的JPQL多,占用的堆空间也多 // 在in的场景下,可能会出现内存泄露 // 因为各种Repository的查询,并且随着in的参数个数不同,queryPlanCache缓存的in的sql越来越多,这样时间久了就会出现无法释放,甚至可能出现OOM // 我们可以通过hibernate.query.plan_cache_…

css实现更改checkbox的样式;更改checkbox选中后的背景色;更改checkbox选中后的icon

<input class"check-input" type"checkbox"> .check-input {width: 16px;height: 16px;} /* 设置默认的checkbox样式 */input.check-input[type"checkbox"] {-webkit-appearance: none; /* 移除默认样式 */border: 1px solid #999;outl…