第六届蓝桥杯Java A——九数分三组

1~9的数字可以组成3个3位数,设为:A,B,C, 现在要求满足如下关系:

B = 2 * A

C = 3 * A

请你写出A的所有可能答案,数字间用空格分开,数字按升序排列。

import java.util.Set;
import java.util.TreeSet;

public class Main {

    static int[] book = new int[9];
    static int[] res = new int[9];
    static StringBuilder a;
    static StringBuilder b;
    static StringBuilder c;
    static Set<String> set = new TreeSet<String>();

    public static void main(String[] args) {
        dfs(0);
        for (String s : set)
            System.out.print(s + " ");
    }

    static void dfs(int idx) {
        if (idx == 9) {
            a = new StringBuilder("");
            b = new StringBuilder("");
            c = new StringBuilder("");
            if (check())
                set.add(a.toString());
            return;
        }
        for (int i = 1; i <= 9; i++) {
            if (book[i - 1] == 0) {
                book[i - 1] = 1;
                res[idx] = i;
                dfs(idx + 1);
                book[i - 1] = 0;
            }
        }
    }

    private static boolean check() {
        a.append(res[0]).append(res[1]).append(res[2]);
        b.append(res[3]).append(res[4]).append(res[5]);
        c.append(res[6]).append(res[7]).append(res[8]);
        int numa = Integer.parseInt(a.toString());
        int numb = Integer.parseInt(b.toString());
        int numc = Integer.parseInt(c.toString());
        return (numb == numa << 1) && (numc == numa * 3);
    }
}

原文 

https://www.wmathor.com/index.php/archives/1246/

本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。

PS:推荐一个微信公众号: askHarries 或者qq群:474807195,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

转载请注明原文出处:Harries Blog™ » 第六届蓝桥杯Java A——九数分三组

赞 (0)
分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址