新娘JAVA_Java之趣味编程结婚问题
package JieHun;public classJieHun {/** 这边【程序 是 详细注释 代码:】
* @param args
* 判断结婚的 组合对数数
* 定义: 好三位新郎为 A,B,C ;三位新娘为X,Y,Z
* 有人想要知道他们谁和谁结婚 ,于是问了其中的三位
* 回答是这样的:A说他将和X结婚 ;X说她的未婚夫是C ;C说他将和Z结婚,
* 这个人听到他们在开玩笑,全部在说谎话,请编程*/
public static String nan[]={"A","B","C"};public static String nv[]={"X","Y","Z"};public static String shuju1,suoyou ;//程序测试
public static voidmain(String[] args) {
String[] ZuheA=new String[2];
String[] ZuheB=new String[3];
String[] ZuheC=new String[1]; //必须 要创建数组对象
int a=0,b=0,c=0;//进入一个数据就加一个数据 ,数据必须要写在循环的外面,不然循环一次就 清零了
int ce1=0,ce2=0,ce3=0;//定义: 好三位新郎为 A,B,C;//三位新娘为X,Y,Z
/**
* 1.确定好有多少 种组队的 样式 AX--AY--AZ; BX--BY--BZ ; CX--CY--CZ;*/
//System.out.print("长度是"+nan.length);
for (int i = 0; i
String nandui=nan[i];for (int j = 0; j
String nvdui=nv[j];
String ZuHe=nandui+nvdui;//组合结婚的对数
/*【测试程序】
suoyou +=" "+ZuHe+", ";
System.out.println("这是【开始(ce1)】第:"+ce1+"输出结果:"+suoyou);//程序测试
ce1++;*/
//char[] ZuheA=null,ZuheB=null,ZuheC=null;//组合对数值 就是ZuheA AX--AY--AZ 这就是数组形式//List listA = new ArrayList();//List listB = new ArrayList();//List listC = new ArrayList();//获取组合 数据//A说他将和X结婚 ;【 为假 】 那么就可以让 AY--AZ ………… 进入
if(!ZuHe.equals("AX")){ //这里面不需要 在&&!ZuHe.equals("XA") 因为这里面始终以 男同志为开头//System.out.println("我是A一号判断:"+ZuHe);//程序测试//if(ZuHe.matches("[\\w]+A")){//这里面 -采用的正则表达式 只让含 A开头的数据进入//上面的 采用的正则表达式 这个有点问题 若是中间的 字符他说查不到的
/** 【测试程序】
* suoyou +=" "+ZuHe+", ";
System.out.println("这是【A】(ce2)第:"+ce2+"输出结果:"+suoyou);//程序测试
ce2++;*/
//【方法二】 if(!ZuHe.equals("AX") && ZuHe.matches(".*A.*")) 注意:这个【 可以使用】else if//【方法一】 这是为了明了 这个【不能使用 】else if
if(ZuHe.matches(".*A.*")){ //用java正则表达式检测字符串中是否含有某字符//System.out.println("我是A二号判断:"+ZuHe);//程序测试
ZuheA[a]=ZuHe;//System.out.println("数据a:"+a);//程序测试//ZuheA = ZuHe.toCharArray();//这是char类型的//ZuheA = ZuHe.toString();//System.out.println(ZuheA);//listA.add(ZuHe);//ZuheA = listA.toArray(new String[a]);
a++;
}
}//X说她的未婚夫是C ;也就是说:C是X的未婚夫 因为 我这里面始终 以男性 为开头。 【 为假 】 那么就是 除去CX-(XC) 都可以进入//else if (!ZuHe.equals("CX")) {//【注意:】 这里面不能使用 else if()因为使用了 这个 就会导致 只要上面的条件满足 (也就会上面if)条件满足 他就不会在在下面 进行判断//除非 将上面的那两重if语句 写在一起 那样这下面就可以使用 else if 【方法二】 if(!ZuHe.equals("AX") && ZuHe.matches(".*A.*")) 这样就可以 在下面使用else if
if (!ZuHe.equals("CX")) {//C说他将和Z结婚 【为假】 所以 下面 的数据可以进入
/*【测试程序】
suoyou +=" "+ZuHe+", ";
System.out.println("这是【C(ce3)】第:"+ce3+"输出结果:"+suoyou);//程序测试
ce3++;*/
/*if(ZuHe.equals("CY")){
System.out.println("出现了CY数据:"+ZuHe);
}*/
if(!ZuHe.equals("CZ")){//if(ZuHe.matches("[\\w]+C")){//这里面 -采用的正则表达式 只让含 C开头的数据进入
if(ZuHe.matches(".*C.*")){
ZuheC[c]=ZuHe; //注意:这里面其实只又一个数据 就是CY//ZuheC = ZuHe.toCharArray();//这是char类型的//listC.add(ZuHe);//添加数据//ZuheC =listA.toArray(new String[c]);//System.out.println("出现了CY数据:"+ZuHe);
c++;
}
}
}//这里面 -采用的正则表达式 只让含 B开头的数据进入 这里面是有三组数据//if(ZuHe.matches("[\\w]+B")){//else if(ZuHe.matches(".*B.*")){//【注意:】 这里面不能使用 else if()因为使用了 这个 就会导致 只要上面的条件满足 (也就会上面if)条件满足 他就不会在在下面 进行判断//除非 将上面的那两重if语句 写在一起 那样这下面就可以使用 else if
if(ZuHe.matches(".*B.*")){
ZuheB[b]=ZuHe; //注意:这里面其实只又一个数据 就是CY//ZuheB = ZuHe.toCharArray();//这是char类型的//listB.add(ZuHe);//ZuheB=listB.toArray(new String[b]);
b++;
}//就是将获取的数据进行组合匹配 组合匹配的数据 必须是要将 最外层的数据循环完成 在进行 也就是 i=2;j=2的时候
if(i==2 && j==2){//这样他们的数据就已经全部匹配完成了
for (int k = 0; k < ZuheA.length; k++) {
String qeiA=ZuheA[k];//获取 为真的 数据
for (int l = 0; l < ZuheB.length; l++) {
String qeiB=ZuheB[l];for (int m = 0; m < ZuheC.length; m++) {
String qeiC=ZuheC[m];
String QuanBu=qeiA+""+qeiB+""+qeiC;//这里面是为了判断该 数据是否 有 相同 的字符 【因为】这里面不能出现相同的数据 因为 中国法律规律 一夫一妻制 所以 结婚 组合 也是如此 每个人对应一个
String QuanBu1=" "+qeiA+","+qeiB+","+qeiC+" ";//这里是为了进行打印而做的备份数据 不做就要 在进行 将数据进行分解 或者加入 空格
System.out.println("\t\t第【k】"+k+"【l】"+l+"【m】"+m+"可以出现这么种:组合结果:"+QuanBu);//int cfA,cfB,cfC;//不允许重复的个数//if(QuanBu.matches("^.*?(.+?)\\1.*?$")){//正则表达式 不允许这里面有着重复的数据(也就是重复的字符串) 这个正则表达式有问题
if(QuanBu.matches("(?!.*(.).*\\1)")){//表示字符串中【不含】重复字符
System.out.println("\n\t由于不可能出现这么多种结果,也不可能出现 一对多 只能出现一对一 所以最终 结婚对数如下");
System.out.println("\n\n\t\t【最终结婚的组合】是:"+QuanBu1);
}
}
}
}
}
}
}
}
}
新娘JAVA_Java之趣味编程结婚问题相关推荐
- php while 存钱,php趣味编程 -php存钱的问题
php趣味编程 -php存钱的问题 存钱的问题..存一笔钱.用来大学的生活费.四年..每个月1000.刚好完 整存领取的年利息是1.71% header("Content-Type: tex ...
- python趣味编程表白_【暖心一笑】Python趣味编程:定时给Ta讲笑话
原标题:[暖心一笑]Python趣味编程:定时给Ta讲笑话 大四的生活就是这么无聊,我琢磨着也学了这么多东西了,为啥不能用自己的知识来给生活找点乐子呢?我想反正每天都要给Ta问候一声早安,为何不同时讲 ...
- python趣味编程100_《Python游戏趣味编程》 第8章 勇闯地下一百层
知乎视频www.zhihu.com 图书简介可以看这里:童晶:<Python游戏趣味编程>新书上架了zhuanlan.zhihu.com 本章我们将编写一个勇闯地下一百层的游戏,键盘控 ...
- python游戏程序-Python游戏趣味编程
书名:Python游戏趣味编程 定价:69.0 ISBN:9787115538246 作者:童晶 版次:第1版 出版时间:2020-07 内容提要: 本书把趣味游戏开发应用于Python编程教学,通过 ...
- python趣味编程10例-python趣味编程100例(99个)
[实例简介] python如今很流行,AI的首选工具:python趣味编程100例(99个),学习编程不枯燥. [实例截图] [核心代码] python趣味编程100例(99个) └── python ...
- python趣味编程10例-Python趣味编程与精彩实例
Python趣味编程与精彩实例 共19 章,前12章主要以Python 基础知识如文件创建.输出与变量.输入与判断.运算符和循环.列表和字典.函数编程.pygame的各种知识为主,13-19章则以游戏 ...
- 趣味编程:从字符串中提取信息(参考答案 - 下)
昨天我们观察了如何使用基于状态机的顺序解析方式来提取字符串中的信息,不过由于winter-cn的做法和我原始的想法不谋而合,但实现的更为清晰,因此我在不献丑的同时,又设法使用另外一种方式来解决这个问题 ...
- 趣味编程:从字符串中提取信息(参考答案 - 上)
这次"趣味编程"的目的是解析字符串,从一个指定模式的字符串中提取信息.对于目前这个问题,解决方案有很多种,例如直接拆分,使用正则表达式,或是如现在本文这般按照顺序解析.总结果上来说 ...
- 趣味编程:函数式链表的快速排序(参考答案)
之前我提出了一个"趣味编程",模仿Haskell的方式对一个链表进行快速排序.在那篇文章中我解释了Haskell列表的结构,并给出了ImmutableList的基础实现.快速排序的 ...
最新文章
- C++多态的实现原理
- [转载] zookeeper 分布式锁服务
- Matlab之switch-case语句
- 【Machine Learning】KNN学习算法与C语言实现
- 从零开始的C++网络编程
- [渝粤教育] 西南科技大学 高等数学1 在线考试复习资料
- 【Kafka】Elasticsearch 与 Kafka 整合剖析
- deian 授权用户 sudo权限
- 亚嵌协办 博文视点Open Party第5期 参会感言
- 环保工位机重装系统需要备份的文件
- java正则表达式判断整数_java正则表达式判断数字
- Unity 根据文件路径批量修改图片格式
- minHJ函数matlab黄金分割法,黄金分割法求极小值
- 21.通用型1602液晶显示屏操作方法
- STM32F407高级定时器-死区时间研究-STM32CubeMX
- 阿里腾讯都到百度去挖AI大牛,百度对此却不care,为何?
- 数据库CREATE TRIGGER 触发器
- 分区助手4.0绿色中文版
- 傅里叶缩写及涵义整理
- 数据结构基础框架总结
热门文章
- 大力出奇迹,揭秘昇腾CANN的AI超能力
- 华为云PB级数据库GaussDB(for Redis)揭秘第十期:GaussDB(for Redis)迁移系列(上)
- 从小小后视镜看物联网的生态(上)
- 野生前端的数据结构练习(9)冒泡排序,选择排序,插入排序
- Python 修改pip源---windows / Linux
- airflow连接mysql错误_安装Airflow遇到的问题以及解决过程
- SpykeTorch: Efficient Simulation of Convolutional Spiking Neural Networks With at Most One Spike per
- VGG16关于学习率如何影响精度效应
- SQL Server where语句使用举例
- 设计模式--策略模式