博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
配对新郎和新娘问题
阅读量:3903 次
发布时间:2019-05-23

本文共 2292 字,大约阅读时间需要 7 分钟。

三对情侣参加婚礼,三个新郎为 A、B、C,三个新娘为 X 、Y、Z。有人不知道谁和谁结婚,于是询问了六位新人中的三位,但听到的回答是这样的 :A 说他将和 X 结婚 ;X 说她的未婚夫是C ;C 说他将和 Z 结婚。这人听后知道他们在开玩笑,全是假话 。请编程找出谁将和谁结婚 。

。。。此题我用了邻接矩阵,根据题目给出的关系给邻接矩阵赋了初值。。虽然算出来了,但是写的贼麻烦。。。

这里我把我的代码和网上给出的答案都列在下面了。。。

注释我都列出来了...

我写的:

#include 
#include
#include
#include
using namespace std;int vis[3][3]; //1代表两人为伴侣,2表示两人关系不确定,0表示两人不是伴侣void init() //初始化关系不确定{ for (int i=0;i<3;i++) for (int j=0;j<3;j++) vis[i][j]=2;}void output () //输出结果{ char s1[5]="XYZ"; char s2[5]="ABC"; int re[3]; for (int i=0;i<3;i++) for (int j=0;j<3;j++) if(vis[i][j]==1) re[i]=j; for (int i=0;i<3;i++) printf("%c的未婚夫为%c\n",s1[i],s2[re[i]]);}int main(){ int num=0; //表示确定关系的对数 init(); //题目给出的条件 vis[0][0]=0; vis[0][2]=0; vis[2][2]=0; while (num<3) { for (int i=0;i<3;i++) { //当一个人与两个人确定不是情侣关系时,可断定与另一个人是情侣 if(!vis[i][0]&&!vis[i][1]&&vis[i][2]==2) { num++; vis[i][2]=1; for (int j=0;j<3;j++) if(j!=i) vis[j][2]=0; continue; } if(!vis[i][0]&&vis[i][1]==2&&!vis[i][2]) { num++; vis[i][1]=1; for (int j=0;j<3;j++) if(j!=i) vis[j][1]=0; continue; } if(vis[i][0]==2&&!vis[i][1]&&!vis[i][2]) { num++; vis[i][0]=1; for (int j=0;j<3;j++) if(j!=i) vis[j][0]=0; continue; } } } output();}

网上给出的:

#include 
int main(){ int x, y, z; for (x = 1; x <= 3; x++) { for (y = 1; y <= 3; y++) { for (z = 1; z<= 3; z++) { if (x != 1 && x != 3 && z != 3 && x != y && y != z && x != z) { printf("X will marry to %c.\n", 'A' + x - 1); printf("Y will marry to %c.\n", 'A' + y - 1); printf("Z will marry to %c.\n", 'A' + z - 1); } } } } return 0;}

 

 

转载地址:http://hvaen.baihongyu.com/

你可能感兴趣的文章
Latex排版全解
查看>>
2D-slam 激光slam: 开源代码的比较HectorSLAM Gmapping KartoSLAM CoreSLAM LagoSLAM
查看>>
北航王田苗教授:国内外机器人发展热点与趋势(精华版)
查看>>
windows常用软件收集
查看>>
Markdown语法注意借鉴
查看>>
Java 容器Collection(5)
查看>>
Java IO操作(6)
查看>>
Java数组(3)
查看>>
Java线程(7)
查看>>
Java GUI基础(9)
查看>>
Java网络基础(8)
查看>>
Java_正则表达式
查看>>
如何通俗地解释 PID 参数整定?
查看>>
简单滤波算法的资料
查看>>
在Eclipse中使用JUnit4进行单元测试(中级篇)
查看>>
在Eclipse中使用JUnit4进行单元测试(高级篇)
查看>>
Java进阶之----LinkedList源码分析
查看>>
Java设计模式--责任链模式(Chain of Responsibility)
查看>>
Java设计模式——Iterator迭代器
查看>>
Java设计模式——Comparable接口&&Comparator(CC系)策略模式的应用
查看>>