将 12…9共 9个数分成 3 组分别组成 3个三位数输入比值a、b、c使这 3个三位数构成abc的比例试求出所有满足条件的3个三位数。若不存在该比值则输出No!!!注意 No!!! 一个字符都不能差输入描述一行包含3个整数a、b、c。代表三个数的比值。输出描述若干行每行3个数字。按照每行第1个数字升序排列。用例输入 1 1 2 3用例输出 1 192 384 576219 438 657273
import itertools
a, b, c = map(int, input().split())
生成1到9的全排列
permutations = list(itertools.permutations(range(1, 10), 9))
result = []
for permutation in permutations: # 将全排列分成3组 group1 = permutation[:3] group2 = permutation[3:6] group3 = permutation[6:]
# 计算三个三位数的比例
ratio1 = int(''.join(map(str, group1))) / int(''.join(map(str, group2)))
ratio2 = int(''.join(map(str, group1))) / int(''.join(map(str, group3)))
ratio3 = int(''.join(map(str, group2))) / int(''.join(map(str, group3)))
# 如果比例符合要求,则添加到结果列表中
if ratio1 == a and ratio2 == b and ratio3 == c:
result.append((group1, group2, group3))
按照每行第1个数字升序排列
result.sort()
输出结果
if len(result) == 0: print("No!!!") else: for group1, group2, group3 in result: print(' '.join(map(str, group1)), ' '.join(map(str, group2)), ' '.join(map(str, group3))
原文地址: https://www.cveoy.top/t/topic/ifOR 著作权归作者所有。请勿转载和采集!