和你之前那个题差不多,改了改 import java.util.Vector;public class FindChars {
private Vector<String> org = null; private Vector<Five> all = null; private Vector<Five> result = null;
public FindChars() { org = new Vector<String>(0); result = new Vector<Five>(0); for (int i=1;i<14;i++) { org.add("" + i); } all = new Vector<Five>(0); createFives(); for (int j=0;j<346;j++) { for (Five five : all) { if (addToResult(five)) { System.out.println("" + (j+1) + ":" + five.getUID()); break; } } } }
public boolean addToResult (Five five) { for (Five f : result) { int same = 0; for (String num : f.getNums()) { if (five.getNums().contains(num)) { same++; if (same >=3) { return false; } } } } result.add(five); if (result.size() > 6) { result.remove(0); } all.remove(five); return true; }
private void createFives() { Five five; for (int i1=1;i1<10;i1++) { for (int i2=i1+1;i2<11;i2++) { for (int i3=i2+1;i3<12;i3++) { for (int i4=i3+1;i4<13;i4++) { for (int i5=i4+1;i5<14;i5++) { five = new Five(""+i1, ""+i2, ""+i3, ""+i4, ""+i5); all.add(five); } } } } } }
public static final void main(String arg[]) { FindChars xxx = new FindChars(); }
class Five { private Vector<String> nums = null; private String UID = null;
import java.util.Vector;public class FindChars {
private Vector<String> org = null;
private Vector<Five> all = null;
private Vector<Five> result = null;
public FindChars() {
org = new Vector<String>(0);
result = new Vector<Five>(0);
for (int i=1;i<14;i++) {
org.add("" + i);
}
all = new Vector<Five>(0);
createFives();
for (int j=0;j<346;j++) {
for (Five five : all) {
if (addToResult(five)) {
System.out.println("" + (j+1) + ":" + five.getUID());
break;
}
}
}
}
public boolean addToResult (Five five) {
for (Five f : result) {
int same = 0;
for (String num : f.getNums()) {
if (five.getNums().contains(num)) {
same++;
if (same >=3) {
return false;
}
}
}
}
result.add(five);
if (result.size() > 6) {
result.remove(0);
}
all.remove(five);
return true;
}
private void createFives() {
Five five;
for (int i1=1;i1<10;i1++) {
for (int i2=i1+1;i2<11;i2++) {
for (int i3=i2+1;i3<12;i3++) {
for (int i4=i3+1;i4<13;i4++) {
for (int i5=i4+1;i5<14;i5++) {
five = new Five(""+i1, ""+i2, ""+i3, ""+i4, ""+i5);
all.add(five);
}
}
}
}
}
}
public static final void main(String arg[]) {
FindChars xxx = new FindChars();
}
class Five {
private Vector<String> nums = null;
private String UID = null;
public Five() {
nums = new Vector<String>(0);
}
public Five(String arg1, String arg2, String arg3, String arg4, String arg5) {
nums = new Vector<String>(0);
nums.add(arg1);
nums.add(arg2);
nums.add(arg3);
nums.add(arg4);
nums.add(arg5);
}
public Vector<String> getNums() {
return nums;
}
public String getUID() {
if (UID == null && nums.size() == 5) {
UID = "";
for (String num : nums) {
switch (Integer.valueOf(num)) {
case 1:UID += "a" + ".";break;
case 2:UID += "b" + ".";break;
case 3:UID += "c" + ".";break;
case 4:UID += "d" + ".";break;
case 5:UID += "e" + ".";break;
case 6:UID += "f" + ".";break;
case 7:UID += "g" + ".";break;
case 8:UID += "h" + ".";break;
case 9:UID += "i" + ".";break;
case 10:UID += "j" + ".";break;
case 11:UID += "k" + ".";break;
case 12:UID += "l" + ".";break;
case 13:UID += "m" + ".";break;
}
}
}
return UID;
}
}
}