第六届南桥杯JavaA组 第三题 九数分三组

第六届南桥杯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

猜你喜欢

转载自blog.csdn.net/wugufeng0220/article/details/44996513