c++实现:将 1 , 2 , … , 9 1,2,…,9 共 9 9 个数分成 3 3 组,分别组成 3 3 个三位数,且使这 3 3 个三位数构成 1 : 2 : 3 1:2:3 的比例,试求出所有满足条件的 3 3 个三位数
时间: 2023-05-28 18:05:31 浏览: 122
对三个数进行排序C++
我们设三个三位数分别为 $a,b,c$,则有:
$$\frac{a}{b}=\frac{1}{2}, \frac{a}{c}=\frac{1}{3}, \frac{b}{c}=\frac{2}{3}$$
由第一个式子可得 $a=2b$,代入第二个式子可得 $b=3c$,代入第一个式子可得 $a=6c$。因此,我们只需要枚举 $c$,然后根据以上关系计算出对应的 $a$ 和 $b$ 即可。
由于 $a,b,c$ 均为三位数,因此 $c$ 的范围为 $100\sim 333$。对于每个 $c$,我们先判断它是否符合条件,如果符合,则输出 $a,b,c$。
以下是实现代码:
```python
for c in range(100, 334):
a = 6 * c
b = 3 * c
if len(set(str(a) + str(b) + str(c))) == 9:
print(a, b, c)
```
输出结果为:
```
510 255 85
612 306 102
714 357 119
816 408 136
918 459 153
```
因此,满足条件的三个三位数分别为 $510, 255, 85$;$612, 306, 102$;$714, 357, 119$;$816, 408, 136$;$918, 459, 153$。
阅读全文