筛选不重复的单个数字组成的成比例多位数
例如:用1-9,9个数字组成3个三位数,且大小比值为1:2:3
int a, b, c;
for(int i=1; i<=3; i++)
for(int j=1; j<=9; j++)
for (int k = 1; k <= 9; k++) {
if (j == i || j == k || k == i)
//如果三个数字中有两个或三个相同,则继续循环,直到选到3个不同数字
continue;
a = 100 * i + 10 * j + k;//第一个三位数
b = 2 * a;//第二个三位数
c = 3 * a;//第三个三位数
if (c >= 1000)//不能超过三位
return 0;
//将第二个和第三个三位数的百位,十位,个位分别表示出来
int l = b / 100, m = (b / 10) % 10, n = b % 10;
int o = c / 100, p = (c / 10) % 10, q = c % 10;
if (i + j + k + l + m + n + o + p + q == 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 &&
i*j*k*l*m*n*o*p*q == 1 * 2 * 3 * 4 * 5 * 6 * 7 * 8 * 9)
//由于题目要求数字不重复,所以每个三位数的百位、十位、个位的和、乘积跟1-9的和、乘积相等
cout << a << " " << b << " " << c << endl;
}