第6回ブルーブリッジカップJavaA九数分三組
8937 ワード
第6回ブルーブリッジカップJavaA九数分三組
九数三組
1~9の数字は3つの3桁を構成することができ、A,B,Cとすることができ、現在は以下の関係を満たすことが要求されている:B=2*A C=3*A
Aのすべての可能な答えを書いてください.数字の間はスペースで分かれていて、数字は昇順に並んでいます.
注意:Aの値だけを提出して、厳格にフォーマットの要求に従って負けます
答え:
192 219 273 327
法一:
考え方:
dfsは1~9の全配列を得てabcに分け,合法的にはaを保存する.最後の順序で出力します.
九数三組
1~9の数字は3つの3桁を構成することができ、A,B,Cとすることができ、現在は以下の関係を満たすことが要求されている:B=2*A C=3*A
Aのすべての可能な答えを書いてください.数字の間はスペースで分かれていて、数字は昇順に並んでいます.
注意:Aの値だけを提出して、厳格にフォーマットの要求に従って負けます
答え:
192 219 273 327
法一:
考え方:
dfsは1~9の全配列を得てabcに分け,合法的にはaを保存する.最後の順序で出力します.
import java.util.*;
/**
*
* @description TODO
* @author frontier
* @time 2019 3 2 4:23:51
*
*/
public class 3 {
static boolean[] vis = new boolean[10];
static List<Integer> list = new LinkedList<Integer>();
public static void main(String[] args) {
dfs("");
Collections.sort(list);
for (int i = 0; i < list.size(); ++i)
System.out.print(i == list.size() - 1 ? list.get(i) : list.get(i) + " ");
}
static void dfs(String s) {
if (s.length() == 9) {
int a = Integer.parseInt(s.substring(0, 3));
int b = Integer.parseInt(s.substring(3, 6));
int c = Integer.parseInt(s.substring(6, 9));
if (b == 2 * a && c == 3 * a)
list.add(a);
return;
}
for (int i = 1; i <= 9; ++i) {
if (!vis[i]) {
vis[i] = true;
dfs(s + i);
vis[i] = false;//
}
}
}
}