当前位置: 首页 > 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;
}

http://www.lryc.cn/news/141307.html

相关文章:

  • spring cloud gateway中出现503
  • 战略在集体学习过程中涌现
  • html动态爱心代码【四】(附源码)
  • 如何利用SLF4J扩展模块实现高效的日志记录
  • 通用语言模型蒸馏-GLMD
  • kafka--技术文档-基本概念-《快速了解kafka》
  • ChatGPT:ChatGPT 的发展史,ChatGPT 优缺点以及ChatGPT 在未来生活中的发展趋势和应用
  • 【八股】2023秋招八股复习笔记4(MySQL Redis等)
  • 【Unity】 Mesh 和 Mesh.subMeshCount
  • Java开发中Word转PDF
  • 【前端】vscode前端插件笔记
  • windows MFC消息demo
  • 尚硅谷大数据项目《在线教育之离线数仓》笔记003
  • 银河麒麟arm版服务器安装docker
  • 三个视角解读ChatGPT在教学创新中的应用
  • PHP求职招聘系统Dreamweaver开发mysql数据库web结构php编程计算机网页
  • Mysql 基本概念
  • python开发--文件敏感信息识别
  • 【力扣】746. 使用最小花费爬楼梯 <动态规划>
  • sftp命令 添加端口(亲测)
  • Redis.conf详解
  • 【论文笔记】Planning and Decision-Making for Autonomous Vehicles
  • 视频云存储/安防监控EasyCVR视频汇聚平台接入GB国标设备时,无法显示通道信息该如何解决?
  • git中,add到暂存区,commit且push之后,暂存区域里还有内容吗
  • java中用SXSSFWorkbook把多个字段的list数据和单个实体dto导出到excel如何导出到多个sheet页详细实例?
  • ES基础操作
  • PCIE超高速实时运动控制卡在六面外观视觉检测上的应用
  • ctfshow web入门 php特性 web108-web112
  • 数据可视化是什么?有什么工具?
  • PC端版面设计之尾部设计