第六届南桥杯JavaA组 第三题 九数分三组
题目:
1~9的数字可以组成3个3位数,设为:A,B,C, 现在要求满足如下关系:
B = 2 * A
C = 3 * A
请你写出A的所有可能答案,数字间用空格分开,数字按升序排列。
注意:只提交A的值,严格按照格式要求输出。
直接暴力,哎,当时把c==3*a写成了c==3*a,结果没有结果,以为算法错了,有改成枚举9个数,结果又错了。从下面都代码就能看出当时有多乱,有几个函数没用。诶不多说了,都是泪。。。
import java.util.Arrays;
public class _3 {
static int[] num = new int[10];
static int [] k = new int[10];
public static void main(String[] args) {
Arrays.fill(num, 0);
for (int a = 100; a < 1000; a++) {
for (int b = 100; b < 1000; b++) {
for (int c = 100; c < 1000; c++) {
Arrays.fill(num, 0);
if(trans(a) && trans(b) && trans(c)) {
if(b==2*a && c==3*a) {
System.out.println("a="+a+"b="+b+"c="+c);
}
// System.out.println("==========="+"a="+a+"b="+b+"c="+c);
}
}
}
}
}
private static void copy(int[] k2, int[] num2) {
for (int i = 0; i < num2.length; i++) {
k2[i] = num2[i];
}
}
private static boolean check() {
for (int i = 1; i < 10; i++) {
if(num[i] != 1) return false;
}
return true;
}
private static boolean trans(int c) {
// copy(k, num);
int t;
while(c>0) {
t = c%10;
num[t]++;
c/=10;
if(num[t]>1 || t==0) {
// copy(num, k);
return false;
}
}
return true;
}
}
答案是192 219 273 327