算法设计与分析男女匹配问题C语言,C语言解决新郎和新娘配对问题代码解析
问题描述
有3对情侣结婚,假设2个新郎为A、B、C,3个新娘为X、Y、Z,有参加婚礼的人搞不清谁和谁结婚,所以去询问了这6位新人中的3位,得到的回答如下:新郎A说他要和新娘X结婚;新娘X说她的未婚夫是新郎C;而新郎C说他要和新娘Z结婚。
听到这样的回答后,提问者知道他们都是在开玩笑,说的都是假话,但他仍搞不清谁和谁结婚,现在请编程求出到底哪位新郎和哪位新娘结婚。
问题分析
根据问题描述,提问者得到的回答都是假话,因此新郎A的新娘不是X,X的新郎不是C,C的新娘不是Z。
显然,一个新郎只能和一个新娘结婚,他们之间是一对一的关系。
算法设计
可以采用穷举法来解决。
设3个char型变量x、y和z分别表示与新娘X结婚的新郎、与新娘Y结婚的新郎和与新娘Z结婚的新郎,它们可能取值的集合是{‘A’,’B’,’C’}。
根据问题分析中获得的结论,可以得出判断依据如下:
x!='A' 表示新郎A的新娘不是X;
x!='C' 表示与新娘X结婚的新郎不是C;
z!='C’ 表示C的新娘不是Z;
x!='y' 表示与新娘X结婚的新郎不会与新娘Y结婚;
x!='z' 表示与新娘X结婚的新郎不会与新娘Z结婚;
y!='z' 表示与新娘Y结婚的新郎不会与新娘Z结婚。
将上面的判断依据组合起来,找到变量x、y和z所满足的条件如下:
x!='A' && x!='C' && z!='C' && x!=y && x!=z && y!=z
找到上面的条件以后,可以在程序中使用三重循环来穷举和z的所有取值,找出满足上述条件的x值、y值和z值,这样便解决了到底哪位新郎和哪位新娘结婚的问题了。
下面是完整的代码:
#include
int main()
{
char x, y, z;
for(x='A'; x<='C'; x++)
for(y='A'; y<='C'; y++)
for(z='A'; z<='C'; z++)
if(x!='A' && x!='C' && z!='C' && x!=y && x!=z && y!=z)
{
printf("结果为:\n");
printf("新娘X与新郎%c结婚。\n", x);
printf("新娘Y与新郎%c结婚。\n", y);
printf("新娘Z与新郎%c结婚。\n", z);
}
return 0;
}
运行结果:
结果为:
新娘X与新郎B结婚。
新娘Y与新郎C结婚。
新娘Z与新郎A结婚。
算法设计与分析男女匹配问题C语言,C语言解决新郎和新娘配对问题代码解析相关推荐
- 算法设计与分析复习笔记(上)
简介:本文是博主在复习算法设计与分析的笔记,参考了北大算法设计与分析以及王晓东编著的<计算机算法设计与分析>第四版相关内容,如有错误,欢迎指正. 文章目录 设计技术 分治 动态规划 设计技 ...
- 算法设计与分析:动态规划(3)-序列联配问题(以算代存)
文章目录 前言 高级动态规划 应用分治思想减少空间 计算得分 从后缀匹配到前缀匹配 伪代码 分治点计算改进 总结 本文参考UCAS卜东波老师算法设计与分析课程撰写 前言 本文内容承接上一次算法设计与分 ...
- 哈工大2020秋算法设计与分析大作业(一)
哈工大2020秋算法设计与分析大作业(一) 前言 正文 1 论文题目 标题 作者 刊物 2 论文阅读报告 2.1 摘要 2.2 问题定义 2.3 算法或证明过程 2.4 实验结论 哈工大2020秋算法 ...
- SDU 2021.1 算法设计与分析考试 回忆版
SDU 2021.1 计科 算法设计与分析考试 计算题 DFSDFSDFS:画出深度优先树:给出每个点的开始时间和结束时间:给出每条边的分类 有向图上的多源最短路径,要求计算distancematri ...
- 算法设计与分析(电子科技大学)(上)算法基础和贪心算法
算法分析与设计 引论 (1)理解算法和程序的差别 (2)理解判断问题和优化问题这两类计算问题 1.理解指数增长的规模 2.理解渐进表达式 掌握渐进符号Ο.Θ.Ω的含义,能判断一个函数属于哪个渐近增长阶 ...
- 算法设计与分析基础-笔记-上
算法设计与分析基础 绪论 什么是算法 一系列解决问题的明确指令,对于符合一定规范的输入,能够在有限的时间内获得要求的输出. 例子:最大公约数:俩个不全为0 的非负整数 m m m和 n n n的最大公 ...
- 算法设计与分析——树的搜索策略和字符串处理算法
树的基本搜索策略 爬山法(有点类似于广度优先搜索,只是加上了边的权重) ( 1 ) 构 造 由 根 组 成 的 单 元 素 栈 S ; ( 2 ) I f T o p ( S ) 是 目 标 节 点 ...
- 算法设计与分析课程的时间空间复杂度
算法设计与分析课程的时间空间复杂度: 总结 算法 时间复杂度 空间复杂度 说明 Hanoi $ O(2^n) $ $ O(n) $ 递归使用 会场安排问题 \(O(nlogn)\) \(O(n)\) ...
- 哈工大威海算法设计与分析_计算机算法设计与分析第一章 算法概述
晓强Deep Learning的读书分享会,先从这里开始,从大学开始.大家好,我是晓强,计算机科学与技术专业研究生在读.我会不定时的更新我的文章,内容可能包括深度学习入门知识,具体包括CV,NLP方向 ...
最新文章
- oracle外部表ora29913,从外部表中选择sqlplus错误:ORA-29913:执行ODCIEXTTABLEOPEN标注时出错...
- Java 18 都要来了,你不会还在用Java 8吧?
- C++ Primer 5th笔记(chap 17 标准库特殊设施)匹配与 Regex 迭代器类型
- 【原创】如何写一个框架:步骤(下)
- 如何成为一名优秀的前端工程师 (copy) - 段华建
- virtualbox--在win7设置ubuntu虚拟机网络
- JSON之Asp.net MVC C#对象转JSON,DataTable转JSON,ListT转JSON,JSON转ListT,JSON转C#对象...
- 【基于zxing的编解码实战】zxing项目源码解读(2.3.0版本,Android部分)
- 【Python机器学习】梯度下降法(一) | 优矿(uqer.io)
- 安装东西要计算机权限,安装需要管理员权限,详细教您怎么设置安装软件需要管理员权限...
- USB转I2C芯片操作EEPROM--CH347应用
- UE4Possess切换控制Pawn
- BLDC电机中的死区时间究竟是什么?
- 推荐系统经典算法之协同过滤
- 云生态瞭望 | 腾讯云生态暖伙伴心
- Pycharm配置编译器
- [BZOJ1911] [Apio2010]特别行动队
- Cloudify Cloud foundry
- Anaconda使用matplotlib画图中文乱码解决办法
- Verilog——篮球24S计时器
热门文章
- php 运行外部程序_PHP实现执行外部程序的方法详解
- 模拟电路基础秦世才_模拟电子技术基础碎片化-晶体管及放大电路基础
- 2021年回顾与展望
- 重新精读《Java 编程思想》系列之final关键字
- java 线程假醒_Java并发基础05. 传统线程同步通信技术
- 提高显卡性能软件_华硕RTX30系显卡亮相
- Linux strace 跟踪进程信息
- nginx 错误502 upstream sent too big header while reading response header from upst
- python遍历任意层次字典_Python递归中 return 代码陷阱
- python读取大文件太慢_python读取大文件越来越慢的原因与解决