题目描述
用1, 2, 3...9 这九个数字组成一个数学公式,满足:ABC + DEF = GHI,每个数字只能出现一次,编写程序输出所有的组合。
输入
无
输出
输出所有的 ABC + DEF = GHI,
每行一条数据,格式为ABC+DEF=GHI
输出结果按照ABC升序排列,如果ABC相同,则按照DEF升序排列。
import itertools # 导入itertools模块,该模块包含用于迭代操作的函数
def find_valid_combinations():
digits = '123456789' # 定义一个字符串,包含数字1到9
permutations = itertools.permutations(digits) # 生成数字1到9的所有排列组合
results = [] # 初始化一个空列表,用于存储符合条件的结果
for perm in permutations: # 遍历所有排列组合
abc = int(''.join(perm[0:3])) # 将排列的前3个数字组合成一个三位数ABC
def_ = int(''.join(perm[3:6])) # 将排列的中间3个数字组合成一个三位数DEF
ghi = int(''.join(perm[6:9])) # 将排列的后3个数字组合成一个三位数GHI
if abc + def_ == ghi: # 检查ABC和DEF的和是否等于GHI
results.append(f"{abc}+{def_}={ghi}") # 如果条件成立,将结果以字符串形式添加到列表中
results.sort() # 对结果列表进行排序
for result in results: # 遍历排序后的结果列表
print(result) # 打印每个结果
find_valid_combinations() # 调用函数以执行上述逻辑