news 2026/6/15 20:05:12

排列问题求解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
排列问题求解

1. 要求

将1~9填在图中的a0~a8的位置,要求三边4个数相加的和相等,并且分别实现(1)三
边4个数相加的和要最小;(2)三边4个数相加的和要最大。

2. C程序代码

#include <stdio.h> #include <stdlib.h> #define GS 9 #define CHUZHI {1, 2, 3, 4, 5, 6, 7, 8, 9} void pailie(int *, unsigned ); void shuchu(int *, unsigned ); void jiaohuan(int *, int *); int NUMS=0; /* 满足三边4个数相加的和相等的排列数目 */ int yqmin9[GS]={0}; /* 三边4个数相加的和相等且和最小的一组排列 */ int yqmax9[GS]={0}; /* 三边4个数相加的和相等且和最大的一组排列 */ int min=30,max=10; /* 三边4个数相加的和相等且和最小的数及最大的数 */ int main( ) { int yqz[GS]=CHUZHI; pailie(yqz, GS); shuchu( yqmin9, GS ); shuchu( yqmax9, GS ); printf("\n%d %d %d\n",NUMS,min,max); return 0; } // 对 yq 中的后 pljg 几个数据进行全排列 void pailie ( int * yq , unsigned pljg ) { unsigned bjh = GS - pljg , jh ; // 被交换和交换元素的下标 int i; if ( pljg==1 ){ if(((yq[0]+yq[1]+yq[2]+yq[3])==(yq[3]+yq[4]+yq[5]+yq[6])) && ((yq[0]+yq[1]+yq[2]+yq[3])==(yq[0]+yq[6]+yq[7]+yq[8]))){ if(min>(yq[0]+yq[1]+yq[2]+yq[3])) { min=(yq[0]+yq[1]+yq[2]+yq[3]); for(i=0;i<9;i++) yqmin9[i]=yq[i]; } if(max<(yq[0]+yq[1]+yq[2]+yq[3])){ max=(yq[0]+yq[1]+yq[2]+yq[3]); for(i=0;i<9;i++) yqmax9[i]=yq[i]; } NUMS++; } } for (jh = bjh ; jh < GS ; jh ++) { jiaohuan ( yq + bjh , yq + jh ) ; // 交换 pailie ( yq , pljg -1 ) ; // 对后面 pljg-1 个全排列 jiaohuan ( yq + bjh , yq + jh ) ; } } // 输出 void shuchu( int *p , unsigned n ) { unsigned i ; for ( i = 0 ; i < n ; i++ ) { printf("%d",p[i]); } putchar(' '); } // 交换p1和p2所指向对象的值 void jiaohuan(int * p1, int * p2) { int tmp; tmp = *p1; *p1 = *p2; *p2 = tmp; }

3. 输出结果

149357286 726851943
864 17 23

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/15 11:46:55

电气风电再摘三项“全球最佳”

近日&#xff0c;国际权威风能杂志Windpower Monthly揭晓“2025年度最佳风电机组”名单。电气风电&#xff08;688660.SH&#xff09;共有三款海陆产品上榜&#xff0c;分别入选全球最佳陆上风电机组&#xff08;6.9MW以下&#xff09;、全球最佳陆上风电机组&#xff08;7.0MW…

作者头像 李华
网站建设 2026/6/15 11:47:31

使用MetaLint配置Misra C++规则集的详细教程

MetaLint实战指南:让MISRA C++真正跑在你的嵌入式项目里 你有没有遇到过这样的场景? 团队刚通过ISO 26262 ASIL-B认证评审,结果在工具链审计环节被卡住——“你们声称使用MISRA C++,但没提供可复现、可追溯的静态分析证据”。或者更现实一点:CI流水线每天爆几十页 dynam…

作者头像 李华
网站建设 2026/6/15 11:49:15

开发者必备:用侠客行测试语音指令识别率的完整指南

开发者必备&#xff1a;用侠客行测试语音指令识别率的完整指南 1. 为什么语音指令识别率测试不能靠“感觉” 你有没有遇到过这样的情况&#xff1a; 写好了一套语音控制逻辑&#xff0c;信心满满地交给测试同学&#xff0c;结果对方反馈&#xff1a;“这个词好像没识别出来”…

作者头像 李华
网站建设 2026/6/15 11:40:44

ollydbg下载及安装完整指南:x86汇编调试环境搭建

OllyDbg实战入门:从下载安装到真正看懂x86程序在跑什么 你有没有试过打开一个 .exe 文件,却完全不知道它到底在内存里干了什么? 不是靠反编译猜逻辑,也不是靠静态扫描找特征——而是 亲眼看着 EIP 一行行跳转、看着 ESP 一格格压栈、看着 EAX 在 call 前后突变、看着…

作者头像 李华
网站建设 2026/6/15 9:27:05

Chrome Driver多浏览器兼容性测试操作指南

Chrome Driver不是Chrome专用的——它是Chromium生态的通用控制中枢 你有没有遇到过这样的场景:CI流水线里,Chrome测试稳如泰山,Firefox却频频报 element not interactable ,Edge干脆连会话都创建失败?翻日志发现错误是 session not created: This version of ChromeDr…

作者头像 李华
网站建设 2026/6/15 9:28:08

HDMI数据的接收发送实验(三)

一、 概况 我们已经讲述完了EDID编码的组成内容&#xff0c;其中最重要的部分是描述详细时序部分&#xff08;H36~H47&#xff09;。本章节就根据实际分辨率来组成这一字段。 二、 EDID的详细时序描述 显示器的详细时序及定时。详细时序块可以用来描述任何时序。字节地址H36~H7…

作者头像 李华