题目:用1~9个数字且不重复组成的两个整数相除,如6729/13458=1/2,编写个程序,找到1/3,1/4,1/5,1/6,1/7,1/8,1/9的表达形式,输出存在的结果
解法:
import java.util.HashSet;
import java.util.Set;
public class HelloWorld {
public static void main(String []args) {
for (float i=1234;i<=9876;i++) {
Set<Integer> iset = convert(i);
if (iset.contains(0) || iset.size()<4) continue;
for (float j=12345;j<=98765;j++) {
Set<Integer> jset = convert(j);
if (jset.contains(0) || jset.size()<5) continue;
Set<Integer> result = new HashSet<Integer>();
result.addAll(iset);
result.addAll(jset);
if (result.size()<9) continue;
if (j/i == 2.0) {
System.out.println((int)i+" / "+ (int)j + " = 1/2 ");
continue;
}
if (j/i == 3.0) {
System.out.println((int)i+" / "+ (int)j + " = 1/3 ");
continue;
}
if (j/i == 4.0) {
System.out.println((int)i+" / "+ (int)j + " = 1/4 ");
continue;
}
if (j/i == 5.0) {
System.out.println((int)i+" / "+ (int)j + " = 1/5 ");
continue;
}
if (j/i == 6.0) {
System.out.println((int)i+" / "+ (int)j + " = 1/6 ");
continue;
}
if (j/i == 7.0) {
System.out.println((int)i+" / "+ (int)j + " = 1/7 ");
continue;
}
if (j/i == 8.0) {
System.out.println((int)i+" / "+ (int)j + " = 1/8 ");
continue;
}
if (j/i == 9.0) {
System.out.println((int)i+" / "+ (int)j + " = 1/9 ");
continue;
}
}
}
}
public static Set<Integer> convert(float numFloat){
Integer num = (int)numFloat;
String str = num.toString();
int[] intArray = new int[str.length()];
for (int i = 0; i < str.length(); i++) {
Character ch = str.charAt(i);
intArray[i] = Integer.parseInt(ch.toString());
}
Set<Integer> set = new HashSet<>();
for (int i = 0; i < intArray.length; i++) {
set.add(intArray[i]);
}
return set;
}
}
F:\javatest>javac HelloWorld.java
F:\javatest>java HelloWorld
2394 / 16758 = 1/7
2637 / 18459 = 1/7
2697 / 13485 = 1/5
2769 / 13845 = 1/5
2937 / 14685 = 1/5
2943 / 17658 = 1/6
2967 / 14835 = 1/5
2973 / 14865 = 1/5
3187 / 25496 = 1/8
3297 / 16485 = 1/5
3729 / 18645 = 1/5
3942 / 15768 = 1/4
4392 / 17568 = 1/4
4527 / 31689 = 1/7
4589 / 36712 = 1/8
4591 / 36728 = 1/8
4653 / 27918 = 1/6
4689 / 37512 = 1/8
4691 / 37528 = 1/8
4769 / 38152 = 1/8
5237 / 41896 = 1/8
5274 / 36918 = 1/7
5371 / 42968 = 1/8
5418 / 37926 = 1/7
5697 / 34182 = 1/6
5789 / 46312 = 1/8
5791 / 46328 = 1/8
5796 / 23184 = 1/4
5823 / 17469 = 1/3
5832 / 17496 = 1/3
5839 / 46712 = 1/8
5892 / 47136 = 1/8
5916 / 47328 = 1/8
5921 / 47368 = 1/8
5976 / 41832 = 1/7
6297 / 31485 = 1/5
6381 / 57429 = 1/9
6471 / 58239 = 1/9
6479 / 51832 = 1/8
6729 / 13458 = 1/2
6741 / 53928 = 1/8
6789 / 54312 = 1/8
6791 / 54328 = 1/8
6792 / 13584 = 1/2
6839 / 54712 = 1/8
6927 / 13854 = 1/2
7123 / 56984 = 1/8
7269 / 14538 = 1/2
7293 / 14586 = 1/2
7312 / 58496 = 1/8
7329 / 14658 = 1/2
7364 / 58912 = 1/8
7416 / 59328 = 1/8
7421 / 59368 = 1/8
7614 / 53298 = 1/7
7629 / 38145 = 1/5
7692 / 15384 = 1/2
7894 / 63152 = 1/8
7923 / 15846 = 1/2
7932 / 15864 = 1/2
7941 / 63528 = 1/8
7956 / 31824 = 1/4
8174 / 65392 = 1/8
8179 / 65432 = 1/8
8361 / 75249 = 1/9
8394 / 67152 = 1/8
8419 / 67352 = 1/8
8439 / 67512 = 1/8
8932 / 71456 = 1/8
8942 / 71536 = 1/8
8953 / 71624 = 1/8
8954 / 71632 = 1/8
9156 / 73248 = 1/8
9158 / 73264 = 1/8
9182 / 73456 = 1/8
9237 / 46185 = 1/5
9267 / 18534 = 1/2
9273 / 18546 = 1/2
9316 / 74528 = 1/8
9321 / 74568 = 1/8
9327 / 18654 = 1/2
9352 / 74816 = 1/8
9416 / 75328 = 1/8
9421 / 75368 = 1/8
9523 / 76184 = 1/8
9531 / 76248 = 1/8
9541 / 76328 = 1/8
9627 / 48135 = 1/5
9723 / 48615 = 1/5

被折叠的 条评论
为什么被折叠?



