锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
class Ball {
private int weight;
public void setWeight(int weight) {
this.weight = weight;
}
public int getWeight() {
return this.weight;
}
}
class ComputerDifBall {
/**
* 澶╁鉤縐版柟娉?br> * @param balls1
* @param balls2
* @return int 0:騫?1:balls1閲?2:balls2閲?br> */
public int balance(Ball[] balls1, Ball[] balls2) {
for (int i = 0; i < balls1.length; i++) {
int weight1 = balls1.getWeight();
int weight2 = balls2.getWeight();
if (weight1 > weight2) {
return 1;
} else if (weight1 < weight2) {
return 2;
}
}
return 0;
}
/**
* 澶╁鉤縐版柟娉?br> * @param balls1
* @param balls2
* @return int 0:騫?1:balls1閲?2:balls2閲?br> */
public int balance (Ball ball1, Ball ball2) {
if (ball1.getWeight() == ball2.getWeight()) {
return 0;
} else if (ball1.getWeight() > ball2.getWeight()) {
return 1;
} else {
return 2;
}
}
/**
* 綆楀嚭鍝竴涓笉涓鏍鳳紝鏄噸浜嗚繕鏄交浜?br> * @param balls
* @return
*/
public void balanceMethod(Ball[] balls) {
Ball[] A = {balls[0],balls[1],balls[2],balls[3]};
Ball[] B = {balls[4],balls[5],balls[6],balls[7]};
Ball[] C = {balls[8],balls[9],balls[10],balls[11]};
//1.縐扮涓嬈?br> int first = balance(A,B);
if (first == 0) {
//A==B,C緇勪腑鏈夐棶棰?br> Ball[]D = new Ball[3];
Ball[]E = new Ball[3];
for (int i = 0 ; i < 3; i++) {
D = A;
E = C;
}
//2.縐扮浜屾
int second = balance(D,E);
if (second == 0) {
//D,E鐩哥瓑,C涓4涓湁闂
//3.縐扮涓夋
int third = balance(A[0],C[3]);
System.out.println("絎?2涓悆鏈夐棶棰?"+(third==2?"榪欎釜鐞冮噸浜?":"榪欎釜鐞冭交浜?"));
} else {
//3.縐扮涓夋
int third = balance(C[0],C[1]);
if (third == 0) {
System.out.println("絎?1涓悆鏈夐棶棰?"+(third==2?"榪欎釜鐞冮噸浜?":"榪欎釜鐞冭交浜?"));
} else {
if (second == 1) {
if (third == 1) {
System.out.println("絎?0涓悆鏈夐棶棰?榪欎釜鐞冭交浜?");
} else {
System.out.println("絎?涓悆鏈夐棶棰?榪欎釜鐞冭交浜?");
}
} else {
if (third == 1) {
System.out.println("絎?涓悆鏈夐棶棰?榪欎釜鐞冮噸浜?");
} else {
System.out.println("絎?0涓悆鏈夐棶棰?榪欎釜鐞冮噸浜?");
}
}
}
}
} else {
Ball[] D = {A[0],A[1],B[0],C[0]};
Ball[] E = {A[2],A[3],B[1],C[1]};
//2.縐扮浜屾
int second = balance(D,E);
if (second == 0) {
//A鍜孊涓嶇瓑錛屼笖A[0]+A[1]+B[0]+C[0] == A[2]+A[3]+B[1]+C[1]
//鍒欒偗瀹氭槸B[2]/B[3]涓湁涓悆涓嶄竴鏍?br> //3.縐扮涓夋
int third = balance(B[2],B[3]);
if (first == 1) {
if (third > 1 ) {
System.out.println("絎?涓悆鏈夐棶棰?榪欎釜鐞冭交浜?");
} else {
System.out.println("絎?涓悆鏈夐棶棰?榪欎釜鐞冭交浜?");
}
} else {
if (third > 1 ) {
System.out.println("絎?涓悆鏈夐棶棰?榪欎釜鐞冮噸浜?");
} else {
System.out.println("絎?涓悆鏈夐棶棰?榪欎釜鐞冮噸浜?");
}
}
} else {
Ball[] F = {A[0],A[3]};
Ball[] G = {A[1],A[2]};
//3.縐扮涓夋
int third = balance(F,G);
if (third == 0) {
//A涓殑鐞冮兘鏄竴鏍?B涓湁涓嶇浉鍚岀殑鐞?br> //B涓瑽[0],B[1]涓嶄竴鏍?br> if (first == 1) {
if (second == 1) {
System.out.println("絎?涓悆鏈夐棶棰?榪欎釜鐞冭交浜?");
} else {
System.out.println("絎?涓悆鏈夐棶棰?榪欎釜鐞冭交浜?");
}
} else {
if (second == 1) {
System.out.println("絎?涓悆鏈夐棶棰?榪欎釜鐞冮噸浜?");
} else {
System.out.println("絎?涓悆鏈夐棶棰?榪欎釜鐞冮噸浜?");
}
}
} else {
if (third == 1) {
//鍒橝[0],A[1]涓湁涓涓噸鐨勭悆
if (first == 1) {
if (second == 1) {
System.out.println("絎?涓悆鏈夐棶棰?榪欎釜鐞冮噸浜?");
} else {
System.out.println("絎?涓悆鏈夐棶棰?榪欎釜鐞冮噸浜?");
}
} else {
if (second == 1) {
System.out.println("絎?涓悆鏈夐棶棰?榪欎釜鐞冭交浜?");
} else {
System.out.println("絎?涓悆鏈夐棶棰?榪欎釜鐞冭交浜?");
}
}
} else {
if (first == 1) {
if (second == 1) {
System.out.println("絎?涓悆鏈夐棶棰?榪欎釜鐞冮噸浜?");
} else {
System.out.println("絎?涓悆鏈夐棶棰?榪欎釜鐞冮噸浜?");
}
} else {
if (second == 1) {
System.out.println("絎?涓悆鏈夐棶棰?榪欎釜鐞冭交浜?");
} else {
System.out.println("絎?涓悆鏈夐棶棰?榪欎釜鐞冭交浜?");
}
}
}
}
}
}
}
public static void main(String[] args) {
ComputerDifBall cdb = new ComputerDifBall();
for (int i = 0; i < 12; i++) {
Ball[] ball = new Ball[12];
for (int j = 0; j < 12; j++) {
ball[j] = new Ball();
if (i != j)
ball[j].setWeight(0);
else
ball[j].setWeight(10);
}
System.out.println("-------------絎?+i+"嬈℃祴璇?娉ㄦ剰閲嶇殑鐞冧負絎?+(i+1)+"涓?-----------------");
cdb.balanceMethod(ball);
System.out.println();
}
for (int i = 0; i < 12; i++) {
Ball[] ball = new Ball[12];
for (int j = 0; j < 12; j++) {
ball[j] = new Ball();
if (i != j)
ball[j].setWeight(10);
else
ball[j].setWeight(0);
}
System.out.println("-------------絎?+i+"嬈℃祴璇?娉ㄦ剰杞葷殑鐞冧負絎?+(i+1)+"涓?-----------------");
cdb.balanceMethod(ball);
System.out.println();
}
}
}
涓婇潰鏄敤java鍐欑殑
鍒?緇勬槸鍙互縐板嚭鏉ョ殑
濡傛灉鍒?緇勶紝鏈変竴縐嶆儏鍐墊槸縐頒笉鍑烘潵
A,B,C,D(姣忕粍3涓?
A=B
B=C
閭d箞鍙湁D涓湁涓涓笉鍚岀殑
錛岃繖涓椂鍊欎笉鑳界‘瀹氶偅涓悆鏄噸浜嗚繕鏄交浜?/font>
綆楁硶紼嬪簭棰橈細
璇ュ叕鍙哥瑪璇曢灝?涓紝瑕佹眰鍦?0鍒嗛挓鍐呬綔瀹屻?nbsp;
棰樼洰濡備笅錛氱敤1銆?銆?銆?銆?銆?榪欏叚涓暟瀛楋紝鐢╦ava鍐欎竴涓猰ain鍑芥暟錛屾墦鍗板嚭鎵鏈変笉鍚岀殑鎺掑垪錛屽錛?12234銆?12345絳夛紝瑕佹眰錛?4"涓嶈兘鍦ㄧ涓変綅錛?3"涓?5"涓嶈兘鐩歌繛銆?
寰幆鏂規硶
class Test2 {
public static void main(String args[]) {
char[] c = { '1', '2', '2', '3', '4', '5' };
for (int i = 0; i < c.length; i++) {
for (int j = 0; j < c.length; j++) {
if (i == j || (c[i] == '3' && c[j] == '5'))
continue;
for (int k = 0; k < c.length; k++) {
if (k == i || k == j || (c[j] == '3' && c[k] == '5')
|| c[k] == '4') {
continue;
}
for (int m = 0; m < c.length; m++) {
if (m == k || m == i || m == j
|| (c[k] == '3' && c[m] == 5)) {
continue;
}
for (int n = 0; n < c.length; n++) {
if (n == m || n == k || n == i || n == j
|| (c[m] == '3' && c[n] == '5')) {
continue;
}
for (int l = 0; l < c.length; l++) {
if (l == n || l == m || l == k || l == j
|| l == i
|| (c[n] == '3' && c[l] == '5')) {
continue;
}
System.out.println(c[i] + "" + c[j] + "" + c[k]
+ "" + c[m] + "" + c[n] + "" + c[l]);
}
}
}
}
}
}
}
}
閫掑綊鏂規硶
class Test2 {
public int[] getNextDifPos(int[] before, int add) {
int[] res = new int[before.length + 1];
for (int i = 0; i < before.length; i++) {
res[i] = before[i];
}
res[res.length - 1] = add;
return res;
}
public int getNextPos(int[] pos) {
for (int i = 0; i < pos.length; i++) {
if (pos[i] != -1) {
return i;
}
}
return -1;
}
public void getStr(int[] before, char[] chars) {
if (before.length == chars.length) {
StringBuffer str = new StringBuffer();
for (int i = 0; i < before.length; i++) {
str.append(chars[before[i]]);
}
// 鍔犲垽鏂潯浠?br> if (str.charAt(2) == '4' || str.indexOf("35") >= 0) {
return;
}
System.out.println(str.toString());
} else if (before.length < chars.length) {
int[] pos = new int[chars.length];
for (int i = 0; i < before.length; i++) {
pos[before[i]] = -1;
}
int nextPos;
while ((nextPos = getNextPos(pos)) != -1) {
pos[nextPos] = -1;
getStr(getNextDifPos(before, nextPos), chars);
}
}
}
public static void main(String args[]) {
char[] c = { '1', '2', '2', '3', '4', '5' };
int[] l = {};
Test2 t = new Test2();
t.getStr(l, c);
}
}