一道简单算法题目,看看各位最简单的解法
“用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; }