用C#写汉诺塔问题

假设要将n个圆盘从A->C,中间可以借助B,那么递归思路是这样的,我们先将除最大的一个圆盘外的其它n-1个圆盘从A->B,借助C,然后将最大的一个圆盘搬到C,最后将刚才的n-1个盘子,从B->C借助A,这样便可完成汉诺塔游戏,借助该递归思想,便可写出如下程序;


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace Homework
{class P5_Hanoi{static void Main(string[] args)         //static关键字用于修饰类的静态成员,所谓静态成员就是属于类的成员而不是属于某一个具体的类实例的成员{Hanoi h = new Hanoi();h.count = 0;h.playHanoi(2, 'A', 'B', 'C');int result = h.count;Console.WriteLine(result);}}//以下类用于完成汉诺塔游戏class Hanoi{public int count = 0;public void playHanoi(int n, char from, char temp, char to){if (n < 1){return;}else{playHanoi(n - 1, from, to, temp);count++;playHanoi(n - 1, from, to, temp);}}}}

 运行结果截图

祝学习进步,生活愉快!! 

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

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

相关文章

Flutter:架构概览

概览 Flutter本质上是一个跨平台的UI工具集&#xff0c;允许在各自操作系统上复用同样的代码。 尽可能提供原生体验的高性能和复用代码。 开发中&#xff0c;Flutter应用在一个VM上运行&#xff0c;使得可在保留状态且无需重新编译情况下&#xff0c;进行热加载。 发行时&…

原子操作CAS

CAS 悲观锁 具有强烈的独占和排他特性。在有悲观锁的情况下&#xff0c;对数据进行处理&#xff0c;数据会处于锁定状态。前面讲到的synchronized同一时间只允许一个线程访问某块资源&#xff0c;其他线程处于阻塞状态&#xff0c;就是一个独占锁&#xff0c;是悲观锁中的一种…

基于TF-IDF+Tensorflow+PyQt+孪生神经网络的智能聊天机器人(深度学习)含全部Python工程源码及模型+训练数据集

目录 前言总体设计系统整体结构图系统流程图孪生神经网络结构图 运行环境Python 环境TensorFlow 环境 模块实现1. 数据预处理2. 创建模型并编译3. 模型训练及保存4. 模型应用 系统测试1. 训练准确率2. 测试效果3. 模型生成 工程源代码下载其它资料下载 前言 本项目利用TF-IDF&…

[MMDetection]生成测试集预测的test.bbox.json文件

基于MMdetection3.10 困扰了大半天的问题&#xff0c;终于解决了。 方法1&#xff1a;定位到configs\_base_\datasets\coco_detection.py 将里面的路径全部换为自己的路径&#xff0c;最重要的是将以下注释取消掉&#xff0c;特别注意以下两个参数 改好的文件示例 # datase…

第一百零三天学习记录:数据结构与算法基础:算法和算法分析

注&#xff1a;截图转自王卓数据结构教学视频 算法和算法分析 算法的定义 对特定问题求解方法和步骤的一种描述&#xff0c;它是指令的有限序列。其中每个指令表示一个或多个操作。 算法的描述 自然语言&#xff1a;英文、中文 流程图&#xff1a;传统流程图、NS流程图 伪…

神仙打架——号称是性能最强的中英文百亿参数量开源模型Baichuan-13B他来了!

下午开个会的功夫看到新闻推送一条最新的大模型相关的项目开源发布了&#xff0c;到底是怎么个事我们来一起看下。 官方项目地址在这里&#xff0c;如下所示&#xff1a; 可以看到&#xff1a;才刚刚过去十几分钟的时间就已经有超过500的star量了。 就在不久前的6月15日&…

难如登天?24岁的QQ才改头换面,破解之法却近在咫尺

QQ史诗级更新 腾讯实在是良心发现了&#xff01; 这次开始大刀阔斧的重构软件——QQNT。 现在不管是公司的同事&#xff0c;还是在上学的弟弟妹妹们&#xff0c;QQ已经很少登录了。 得亏微信和QQ都是腾讯的&#xff0c;要不能放到现在才重构。 旧版的QQ从上世纪开始就一直…

校园闲置物品交易平台的设计与实现(论文+源码)_kaic

摘 要 伴随大数据时代的到来&#xff0c;计算机已成为人们步入个数化生活的必须品。由于计算机技术的成熟&#xff0c;互联网的强大功能也正在被人们以最大限度的开发。通过网络&#xff0c;人们能够足不出户完成校园闲置物品查阅&#xff0c;这在方便学生的同时也解决了在传统…

HTTP与HTTPS

HTTP与HTTPS介绍 超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息&#xff0c;HTTP协议以明文方式发送内容&#xff0c;不提供任何方式的数据加密&#xff0c;如果攻击者截取了Web浏览器和网站服务器之间的传输报文&#xff0c;就可以直接读懂其中的信息&…

windows mysql服务自动启动 错误模块名称:ntdll.dll

在windows11家庭版系统安装mysql后&#xff0c;偶尔有mysql服务自动启动失败的问题&#xff0c;大体的原因就是MySQL的启动服务不能在Windows规定的启动时间内完成准备&#xff0c;于是就会停止其启动程序。windows事件日志如下&#xff1a; 方法一 &#xff1a; 检查确定文件…

naive-ui 的n-date-picker改变成中文

如下 那改完之后就要变成 如下 其实蛮简单的 修改app.vue import { zhCN,dateZhCN } from "naive-ui";<n-config-provider :locale"zhCN" :date-locale"dateZhCN"><RouterView /></n-config-provider> 你要是卡到前端难题&a…

解决Material UI引入button按钮后英文字符被自动转化成全大写

目录 前言一、解决方法总结 前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; 环境&#xff1a; angularjs 1.4.3 material ui 1.1.4 问题描述 在引入<button>按钮的时候&#xff0c;带入了material 的按钮样式&#xff0c;导致了问题&#xff…