当前位置: 首页 > news >正文

数据结构--递归与分治

汉诺塔分析:

以三层进行分析,大于三层分析情况是一样的。

#include <stdio.h>void move(int n,char x,char y,char z)
{if(1 == n){printf("%c---------->%c\n",x,z);}else{move(n-1,x,z,y);//将第n-1个盘子从x借助z移动到y printf("%c---------->%c\n",x,z);move(n-1,y,x,z);//将n-1个盘子从y借助x移动到z上 }
}int main()
{int n;printf("Input n:");scanf("%d",&n);printf("移动的步骤\n");move(n,'x','y','z'); return 0;} 

 

 八皇后问题:

#include <stdio.h>int count = 0; int notDanger(int row ,int j,int (*chess)[8])
{int i,k;int flag1;//判断列方向 for(int i=0;i<8;i++){if(*(*(chess+i)+j) != 0){flag1 = 1;break;} }//判断左上方for(i = row, k =j;i>=0&&k>=0;i--,k--){if(*(*(chess+i)+k)!=0){flag1=1;break;}} //判断右下方for( i = row, k =j;i<8&&k<8;i++,k++){if(*(*(chess+i)+k)!=0){flag1=1;break;}} //判断右上方for( i = row, k =j;i>=0&&k<8;i--,k++){if(*(*(chess+i)+k)!=0){flag1=1;break;}} //判断左下方for( i = row, k =j;i<8&&k>=0;i++,k--){if(*(*(chess+i)+k)!=0){flag1=1;break;}} if(flag1==1){return 0;}else return 1;
}
// row:起始行  n:列数 chess[8]: 表示棋盘每一行指着 
void EightQueen(int row, int n, int (*chess)[8])
{int chess2[8][8];int i,j;for( i=0;i<8;i++){for( j=0;j<8;j++)chess2[i][j]=chess[i][j];}if(8 == row){printf("第 %d 种方法:\n",count+1);for(i=0;i<8;i++){for( j=0;j<8;j++)printf("%d  ",*(*(chess2+i)+j));printf("\n");}printf("\n");count++;}else{//判断这个位置是否有危险//如果没有危险,继续往下for(j=0;j<n;j++){if(notDanger(row,j,chess))//判断是否危险 (不危险) {for(i=0;i<8;i++){*(*(chess+row)+i) = 0;}*(*(chess2+row)+j) = 1;EightQueen(row+1,n,chess2);}} }
}int main()
{int chess[8][8];int i,j;for(i=0;i<8;i++){for(j=0;j<8;j++)chess[i][j]=0;}EightQueen(0,8,chess);printf("总共有 %d   种解决方法",count);return 0;
}

相关文章:

数据结构--递归与分治

汉诺塔分析&#xff1a; 以三层进行分析&#xff0c;大于三层分析情况是一样的。 #include <stdio.h>void move(int n,char x,char y,char z) {if(1 n){printf("%c---------->%c\n",x,z);}else{move(n-1,x,z,y);//将第n-1个盘子从x借助z移动到y printf(&q…...

spring cloud gateway中出现503

spring cloud gateway中出现503 当搭建网关模块的时候出现503的错误的最大的可能就是没有设置负载均衡的依赖包 原先搭建的时候采用的是下面的方式进行设置的 gateway:discovery:locator:enabled: true #可以从nacos进行服务的发现 上面的这种方式可以直接进行注册和发现&…...

战略在集体学习过程中涌现

战略学习派&#xff1a;战略是涌现的学习过程&#xff0c;中国人的话&#xff0c;要交学习费&#xff01;【安志强趣讲269期】 趣讲大白话&#xff1a;出来混总要交学费 **************************** 中国人有这个意识 新进一个领域&#xff0c;要交学费&#xff0c;有学习过程…...

html动态爱心代码【四】(附源码)

目录 前言 特效 完整代码 总结 前言 情人节马上就要到了&#xff0c;为了帮助大家高效表白&#xff0c;下面再给大家带来了实用的HTML浪漫表白代码(附源码)背景音乐&#xff0c;可用于520&#xff0c;情人节&#xff0c;生日&#xff0c;表白等场景&#xff0c;可直接使用。…...

如何利用SLF4J扩展模块实现高效的日志记录

如何利用SLF4J扩展模块实现高效的日志记录 摘要&#xff1a;SLF4J&#xff08;Simple Logging Facade for Java&#xff09;是一个用于 Java 程序中记录日志的简单门面&#xff0c;它提供了一种统一的日志记录接口&#xff0c;可以方便地切换底层的日志实现。SLF4J 还…...

通用语言模型蒸馏-GLMD

文章目录 GLMD一、PPT内容论文背景P1 BackgroundP2 Approach 相关知识P3 知识蒸馏P4 语言建模词预测逻辑 方法P5 两阶段词汇预测蒸馏P6P7 词汇压缩 实验结果P8 results 二、论文泛读2.1 论文要解决什么问题&#xff1f;2.2 论文采用了什么方法&#xff1f;2.4 论文达到什么效果…...

kafka--技术文档-基本概念-《快速了解kafka》

学习一种新的消息中间键&#xff0c;卡夫卡&#xff01;&#xff01;&#xff01; 官网网址 Apache Kafka 基本概念 Kafka是一种开源的分布式流处理平台&#xff0c;由Apache软件基金会开发&#xff0c;用Scala和Java编写。它是一个高吞吐量的分布式发布订阅消息系统&#xf…...

ChatGPT:ChatGPT 的发展史,ChatGPT 优缺点以及ChatGPT 在未来生活中的发展趋势和应用

目录 1.ChatGPT 是什么 2. ChatGPT 的发展史 3.ChatGPT 优缺点 4.ChatGPT 在未来生活中的发展趋势和应用 5.ChatGPT经历了几个版本 1.ChatGPT 是什么 ChatGPT 是一个在线聊天机器人&#xff0c;可以与使用者进行语义对话和提供帮助。它可以回答各种问题&#xff0c;提供建议…...

【八股】2023秋招八股复习笔记4(MySQL Redis等)

文章目录 目录1、MySQLmysql索引实现mysql索引优化mysql索引失效的情况mysql 千万数据优化mysql 事务隔离级别 & 实现原理mysql MVCC版本链&#xff08;undo log&#xff09;mysql数据同步机制 & 主从复制 &#xff08;binlog&#xff09;mysql 日志&数据恢复&…...

【Unity】 Mesh 和 Mesh.subMeshCount

原文 https://www.cnblogs.com/hwx0000/p/12733582.html 什么是subMesh Mesh里面有这么一个参数mesh.subMeshCount&#xff0c;所以说明了subMesh是 属于 Mesh的&#xff0c;subMesh是mesh的子mesh&#xff0c;subMesh所有的顶点数据信息都来自于对应的Mesh&#xff0c;subMes…...

Java开发中Word转PDF

Java开发中Word转PDF文件5种方案横向评测 https://blog.csdn.net/aley/article/details/127914145?ops_request_misc&request_id&biz_id102&utm_termjava%20%20word%20%E8%BD%ACpdf&utm_mediumdistribute.pc_search_result.none-task-blog-2allsobaiduweb~de…...

【前端】vscode前端插件笔记

前段vscode好用插件笔记 不需要安装已经自带 HTML SnippetsPath IntellisenseAuto Rename TagBracket Pair Colorizer 核心好用 中文包关键步骤&#xff1a;controlshift然后display language切换即可open in browserLive Server 实时效果显示JS-CSS-HTML Formatter保存后格…...

windows MFC消息demo

1、在BEGIN_MESSAGE_MAP添加MAP映射 BEGIN_MESSAGE_MAP(CdesktopTotalMapDlg, CDialogEx)ON_MESSAGE(WM_SYS_NORMAL_MSG, OnSysNormalMessage)ON_WM_SYSCOMMAND()ON_WM_PAINT()ON_WM_QUERYDRAGICON()ON_BN_CLICKED(IDC_BUTTON_SELECTSOURCEDIR, &CdesktopTotalMapDlg::OnB…...

尚硅谷大数据项目《在线教育之离线数仓》笔记003

视频地址&#xff1a;尚硅谷大数据项目《在线教育之离线数仓》_哔哩哔哩_bilibili 目录 第8章 数仓开发之DIM层 P039 P040 P041 P042 P043 P044 P045 P046 P047 P048 第8章 数仓开发之DIM层 P039 第8章 数仓开发之DIM层 DIM层设计要点&#xff1a; &#xff08;1&a…...

银河麒麟arm版服务器安装docker

安装 在线安装&#xff1a;输入下面命令&#xff0c;等待安装完成即可 #关闭防火墙 systemctl stop firewalld.service systemctl disable firewalld.serviceyum install -y docker# 修改docker拉取源为国内 rm -rf /etc/docker mkdir -p /etc/docker touch /etc/docker/da…...

三个视角解读ChatGPT在教学创新中的应用

第一&#xff0c;我们正处于一个学生使用ChatGPT等AI工具完成作业的时代&#xff0c;传统的教育方法需要适应变化。 教育工作者不应该因为学生利用了先进技术而惩罚他们&#xff0c;相反&#xff0c;应该专注于让学生去挑战超越AI能力范围的任务。这需要我们重新思考教育策略和…...

PHP求职招聘系统Dreamweaver开发mysql数据库web结构php编程计算机网页

一、源码特点 PHP 求职招聘系统是一套完善的web设计系统&#xff0c;对理解php编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。 源码 https://download.csdn.net/download/qq_41221322/88240283 论文 https://down…...

Mysql 基本概念

数据库的组成 数据 数据是描述事务的符号记录&#xff1b;包括数字、文字、图形、图像、声音、档案记录等 以“记录“形式按统一的格式进行存储 表 将不同的记录以行和列的方式组合成了表 用来存储具体数据 数据库 它就是所有不同属性表的集合 以一定的组织方式存储的…...

python开发--文件敏感信息识别

0x00 背景 文档中敏感信息识别。不限于word, pdf 等文件格式中的敏感信息及其中的图片敏感信息识别。 0x01 识别原理 以word文档为例 .docx文件有很多种结构&#xff0c;这些结构在python-docx中用3种不同的类型来表示&#xff1a;最高一层是Document对象表示文档&#xff0…...

【力扣】746. 使用最小花费爬楼梯 <动态规划>

【力扣】746. 使用最小花费爬楼梯 给你一个整数数组 cost &#xff0c;其中 cost[i] 是从楼梯第 i 个台阶向上爬需要支付的费用。一旦你支付此费用&#xff0c;即可选择向上爬一个或者两个台阶。你可以选择从下标为 0 或下标为 1 的台阶开始爬楼梯。 请你计算并返回达到楼梯顶…...

JMeter压测秒退的三大静默杀手:线程组、超时、监听器

1. 这不是JMeter“崩了”&#xff0c;而是它在用报错告诉你&#xff1a;配置里藏着三个沉默的杀手 刚跑完第一个JMeter压测脚本&#xff0c;线程组设了200个用户、持续5分钟&#xff0c;结果3秒后就自动停了——控制台只留下一行灰底白字的 INFO o.a.j.e.StandardJMeterEngine…...

别再手动刷新了!用HomePage v0.8.2+Docker Compose,一键监控所有容器和网站状态

别再手动刷新了&#xff01;用HomePage v0.8.2Docker Compose&#xff0c;一键监控所有容器和网站状态 每次登录服务器都要挨个检查容器是否运行正常&#xff1f;网站挂了却要等用户反馈才知道&#xff1f;这种被动式运维早该淘汰了。今天介绍的这套方案&#xff0c;能让你的H…...

5个高级技巧:掌握Dark Reader动态主题修复的最佳实践

5个高级技巧&#xff1a;掌握Dark Reader动态主题修复的最佳实践 【免费下载链接】darkreader Dark Reader Chrome and Firefox extension 项目地址: https://gitcode.com/gh_mirrors/da/darkreader Dark Reader是一款广受欢迎的浏览器扩展&#xff0c;它通过智能算法将…...

用Vector2.Lerp、MoveTowards和SmoothDamp搞定Unity 2D物体平滑移动(附性能对比)

Unity 2D平滑移动实战&#xff1a;Vector2.Lerp vs MoveTowards vs SmoothDamp 在2D游戏开发中&#xff0c;角色的移动效果直接影响玩家的操作体验。一个生硬的位移会破坏游戏沉浸感&#xff0c;而恰到好处的缓动则能让操作手感提升一个档次。Unity提供了三种核心方法来实现2D平…...

生成式AI初学者本地部署实操指南:从报错诊断到模型运行

1. 这不是又一篇“AI科普文”&#xff0c;而是一份写给真实初学者的实操手记Generative AI: A Beginner’s Viewpoint Part 2——这个标题乍看像课程续集&#xff0c;但如果你正站在ChatGPT第一次弹出对话框的那一刻、刚下载完Stable Diffusion却卡在WebUI启动界面、或对着Jupy…...

手把手教你用SPI在两块STM32之间传浮点数(附避坑指南和字符串转换技巧)

手把手教你用SPI在两块STM32之间传浮点数&#xff08;附避坑指南和字符串转换技巧&#xff09; 在物联网传感器数据采集场景中&#xff0c;温湿度等模拟量通常以浮点数形式存在。当我们需要通过SPI协议在STM32主从机之间传输这类数据时&#xff0c;开发者往往会遇到小数位丢失、…...

Android主流架构演进:从MVC到MVI,聚焦MVVM核心实践

引言 在Android应用开发中,架构设计是确保代码可维护性、可测试性和可扩展性的关键。随着技术演进,主流架构从传统的MVC(Model-View-Controller)逐步过渡到MVP(Model-View-Presenter)、MVVM(Model-View-ViewModel),再到新兴的MVI(Model-View-Intent)。这种演进反映…...

从零构建工业级垃圾邮件分类器:端到端实战指南

1. 项目概述&#xff1a;从零构建一个真正能用的垃圾邮件分类器你打开邮箱&#xff0c;每天收到几十封邮件&#xff0c;其中总混着几封标题耸动、内容空洞、发件人可疑的“优惠券”“中奖通知”“账户异常提醒”——它们不是广告&#xff0c;而是典型的垃圾邮件&#xff08;Spa…...

STM32H7 QSPI Flash程序调试全攻略:从MDK配置到单步调试,解决‘算法加载失败’的常见问题

STM32H7 QSPI Flash程序调试实战&#xff1a;破解算法加载失败的终极指南 当你第一次看到MDK弹窗提示"Download Algorithm Failed"时&#xff0c;那种挫败感我深有体会。作为使用STM32H7系列开发过多个量产项目的工程师&#xff0c;我曾在QSPI Flash调试过程中踩过所…...

手把手用Python实现μ律/A律压缩算法(附完整代码与波形对比)

手把手用Python实现μ律/A律压缩算法&#xff08;附完整代码与波形对比&#xff09; 在数字音频处理领域&#xff0c;动态范围压缩是一个永恒的话题。想象一下&#xff0c;当你录制一段包含轻柔耳语和强烈鼓声的音频时&#xff0c;直接使用线性PCM编码会导致要么小声部分被量化…...