您的位置:首页 > 编程语言 > Java开发

java学习之暴力求解新郎新娘的问题

2016-05-03 19:49 429 查看
这篇文章的代码来源于一个故事,就是说主婚人忘记了每个对夫妇的名字,然后每个丈夫说出一个自己的妻子,但是新郎说的结果是错误的。我们可以根据这个规则来暴力求解

* 主要的思路就是每个新郎找到每一个新娘,但是要排除不符合规则的,还有就是同一个新娘不可能被两个人。

package com.jk.hw;

/**
*
* @author jk
*         这段代码说的是暴力求解新娘新郎的算法问题,这里大概说的就是有3对新人,然后每个新郎说自己的新娘是谁,但是说的是错的,我们可以根据这个规则来暴力求解
*         主要的思路就是每个新郎找到每一个新娘,但是要排除不符合规则的,还有就是同一个新娘不可能被两个人。
*
*/
public class test {

/**
* @param args
*/
public static void main(String[] args) {
char[] husband = { 'A', 'B', 'C' };
char[] wife = { 'X', 'Y', 'Z' };
int res = HW(husband, wife);

}

private static int HW(char[] husband, char[] wife) {
int i, j, k;
int match = 0;
// 3个for循环分别代表3个不同的新郎
for (i = 0; i < 3; i++) {
for (j = 0; j < 3; j++) {
for (k = 0; k < 3; k++) {
// 这里代表每个新娘只能分配给一个人
if (i != j && j != k && i != k) {
// 不符合规则的
if (wife[i] == 'X' || wife[j] == 'Y' || wife[k] == 'Z') {
match = 0;
} else {// 找到了
match = 1;
System.out.println(wife[i] + ":" + wife[j] + ":"
+ wife[k]);
return match;
}
}
}
}
}
return 0;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: