题目:
用1,2,3,...,9 组成 3 个三位数 abc,def 和 ghi,每个数字恰好使用一次,要求 abc:def:ghi = 1:2:3。按照“abc def ghi“的格式输出所有解,每行一个解。
暴力破解:
#include<iostream> #include<time.h> using namespace std; int main() { clock_t start, end; int i, note = 0, a, b, c; start = clock(); for (i = 123; i <= 329; i++) { if (i / 100 != i / 10 % 10 && i / 100 != i % 10 && i / 10 % 10 != i % 10) if (i * 2 / 100 != i * 2 / 10 % 10 && i * 2 / 100 != i * 2 % 10 && i * 2 / 10 % 10 != i * 2 % 10 && i * 2 < 999) if (i * 3 / 100 != i * 3 / 10 % 10 && i * 3 / 100 != i * 3 % 10 && i * 3 / 10 % 10 != i * 3 % 10 && i * 3 < 999) if (i / 100 + i / 10 % 10 + i % 10 + i * 2 / 100 + i * 2 / 10 % 10 + i * 2 % 10 + i * 3 / 100 + i * 3 / 10 % 10 + i * 3 % 10 == 45 && (i / 100) * (i / 10 % 10) * (i % 10) * (i * 2 / 100) * (i * 2 / 10 % 10) * (i * 2 % 10) * (i * 3 / 100) * (i * 3 / 10 % 10) * (i * 3 % 10) == 362880) cout << i << " " << i * 2 << " " << i * 3 << endl; } end = clock(); cout << "time is " << end - start << endl; return 0; }
结果:
192 384 576
219 438 657
273 546 819
327 654 981
实在想不到好的方法,就暴力破了,如果是精简算法的话时间应该还可以减少,我在代码段里加入了时间计算,9ms,求各路大神看看能不能有更好的算法~QAQ~
时间: 2024-11-09 09:36:43