|
发表于 2019-11-15 18:42:19
|
显示全部楼层
本楼为最佳答案
本帖最后由 bin554385863 于 2019-11-15 21:24 编辑
- #include <stdio.h>
- #include <stdbool.h>
- bool cmp(int n, int m) //判断两个三位数是否含有相同的数字
- {
- bool flag = true;
- int a = n / 100, i = m / 100, b = (n % 100) / 10, j = (m % 100) / 10, c = n % 10, k = m % 10;
- if (a != j && a != i && a != k && b != i && b != j && b != k && c != i && c != j && c != k)
- {
- flag = false;
- }
- return flag;
- }
- bool cmp123(int x, int y, int z) //判断是三个三位数是否符合比例
- {
- bool flag = false;
- if ((y == 2 * x) && (z == 3 * x))
- {
- flag = true;
- }
- return flag;
- }
- bool islastzero(int x, int y, int z) //判断三个三位数是否含有零
- {
- bool flag = true;
- if ((x + y + z) % 10 != 0 && (x % 100 > 9) && (y % 100 > 9) && (z % 100 > 9))
- {
- flag = false;
- }
- return flag;
- }
- bool issamedigit(int n) //判断三位数是否含有相同的数字
- {
- bool flag = true;
- if ((n % 10 != n / 100) && (n % 10 != (n % 100) / 10) && (n / 100 != (n % 100) / 10))
- {
- flag = false;
- }
- return flag;
- }
- int main(int argc, char const *argv[])
- {
- for (size_t i = 123; i < 330; i++)
- {
- int j = 2 * i, k = 3 * i;
- if (!cmp(i, j) && !cmp(i, k) && !cmp(j, k) && cmp123(i, j, k) && !islastzero(i, j, k) && !issamedigit(i) && !issamedigit(j) && !issamedigit(k))
- {
- printf("%d %d %d\n", i, j, k);
- }
- }
- return 0;
- }
复制代码
--------------------------------------------------------------------------------------------------------------------
Microsoft Windows [版本 10.0.18363.476]
(c) 2019 Microsoft Corporation。保留所有权利。
E:\Users\admin\Documents\VScode>c:\Users\admin\.vscode\extensions\ms-vscode.cpptools-0.26.1\debugAdapters\bin\WindowsDebugLauncher.exe --stdin=Microsoft-MIEngine-In-qk5vc2ft.zde --stdout=Microsoft-MIEngine-Out-h2nkam1g.glu --stderr=Microsoft-MIEngine-Error-nov1z25b.xmv --pid=Microsoft-MIEngine-Pid-4bed5xua.geb --dbgExe=D:\MinGW\bin\gdb.exe --interpreter=mi
192 384 576
219 438 657
273 546 819
327 654 981
E:\Users\admin\Documents\VScode> |
|