news 2026/4/17 17:22:35

排列问题求解

作者头像

张小明

前端开发工程师

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/4/15 21:18:47

ST7789V控制信号引脚时序要求详解

ST7789V控制信号时序不是“能跑就行”&#xff0c;而是量产级显示系统的生死线 你有没有遇到过这样的场景&#xff1a; - 显示屏冷机上电第一次花屏&#xff0c;热机后正常&#xff1b; - 同一份固件&#xff0c;在A板子上完美运行&#xff0c;在B板子上频繁撕裂&#xff1b;…

作者头像 李华
网站建设 2026/4/8 12:30:54

电路联合仿真原理:circuit simulator图解说明

电路联合仿真不是拼图游戏:一个老IC验证工程师的实战手记 去年冬天调试一款车规级D类功放时,我连续三天卡在一个诡异问题上:实测中MOSFET在PWM关断瞬间出现500ns的异常导通,而纯SPICE仿真完全复现不了。直到把MCU的RTL模型、GaN器件的温度敏感参数、PCB地平面的寄生电感全…

作者头像 李华
网站建设 2026/3/26 6:57:23

从零实现esptool对CP2102N驱动的适配流程

从识别失败到稳定烧录&#xff1a;手把手打通 esptool 与 CP2102N 的最后一公里 你刚把一块崭新的 ESP32-C3 开发板插进电脑&#xff0c; esptool.py chip_id 一敲&#xff0c;终端却冷冷地吐出一行&#xff1a; No serial ports found.不是线没插好&#xff0c;不是驱动没…

作者头像 李华
网站建设 2026/4/17 23:57:57

STM32F103C8T6与Nano-Banana联动:嵌入式3D展示系统

STM32F103C8T6与Nano-Banana联动&#xff1a;嵌入式3D展示系统 1. 当硬件遇上AI生成&#xff0c;一个真实的嵌入式交互场景 你有没有试过把一张照片变成3D公仔&#xff0c;再让这个虚拟形象在物理世界里动起来&#xff1f;不是在手机App里滑动查看&#xff0c;而是通过一块指…

作者头像 李华
网站建设 2026/4/17 20:20:35

完整指南:UART协议硬件滤波与去抖设计

UART硬件滤波与去抖设计实战手记&#xff1a;一位工业嵌入式工程师的十年踩坑总结刚接手某风电变流器现场通信故障时&#xff0c;我盯着逻辑分析仪上那串断断续续、夹杂着大量Framing Error的UART帧&#xff0c;足足看了三分钟——不是看不懂&#xff0c;而是太熟悉了。这已经是…

作者头像 李华
网站建设 2026/4/17 18:13:29

JLink驱动安装系统学习:兼容Win10/Win11烧录环境

J-Link驱动安装不是点“下一步”那么简单&#xff1a;Win10/Win11下嵌入式烧录链路的底层攻坚实录 你有没有遇到过这样的场景&#xff1f; 刚把J-Link插进电脑&#xff0c;设备管理器里赫然一个黄色感叹号&#xff1b; Keil打开工程&#xff0c;点击下载——弹窗&#xff1a;…

作者头像 李华