一道简单算法题目,看看各位最简单的解法
“用1,2,3,…,9组成3个三位数abc,def和ghi,每个数字恰好使用一次,要求abc:def:ghi=1:2:3。按照“abc def ghi”的格式输出所有解,每行一个解。”有想法的可以把代码贴出来,明天下午我贴出我的代码,欢迎交流。先给出正确的输出数据:
192 384 576
219 438 657
273 546 819
327 654 981

程序代码:
#include <stdio.h>
int a[1000] = {0};
int main() {
//筛选数据
for (int i = 100; i <= 999; i++) {
int b2 = i /100;
int b1= i /10 % 10;
int b0 = i %10;
if (b2 != b1 && b2 != b0 && b1 != b0 && b1 && b2) a[i] = i;
}
for (int i = 100; i <= 999; i++) {
if (a[i] && 3*i <= 999 && a[2*i] && a[3*i]) {
int a2 = a[i]/100,a1 = a[i]/10%10,a0 = a[i] %10;
int b2 = a[i*2]/100,b1 = a[i*2]/10%10,b0 = a[i*2] %10;
int c2 = a[i*3]/100,c1 = a[i*3]/10%10,c0 = a[i*3] %10;
if (a2 != b2 && a2 != b1 && a2 != b0 &&
a2 != c2 && a2 != c1 && a2 != c0 &&
a1 != b2 && a1 != b1 && a1 != b0 &&
a1 != c2 && a2 != c1 && a1 != c0 &&
a0 != b2 && a0 != b1 && a0 != b0 &&
a0 != c2 && a0 != c1 && a0 != c0 &&
b2 != c2 && b2 != c1 && b2 != c0 &&
b1 != c2 && b1 != c1 && b1 != c0 &&
b0 != c2 && b0 != c1 && b0 != c0) {
printf("%d %d %d\n", i, 2*i, 3*i);
}
}
}
return 0;
}
