加法与乘法组合问题求助:输入大于1正整数,输出和为该数的有序数对
相加等于目标数的有序数对解决方案
核心思路
对于输入的正整数n(n>1),所有满足a + b = n的正整数有序数对(a,b),只需要遍历1到n-1的所有正整数作为a,对应的b直接用n - a计算即可。因为是有序数对,(a,b)和(b,a)会被视为两个不同的结果,无需去重。
Python 代码实现
n = int(input("请输入一个大于1的正整数:")) if n <= 1: print("输入必须大于1") else: result = [] for a in range(1, n): b = n - a result.append(f"({a}, {b})") print("、".join(result))
效果验证
输入7时,输出为:(1, 6)、(2, 5)、(3, 4)、(4, 3)、(5, 2)、(6, 1),和你给出的示例内容完全一致(示例只是打乱了顺序,所有数对都包含在内)。
补充说明
- 如果输入的数是
2,会输出(1, 1),符合1+1=2的要求 - 代码里的判断逻辑确保输入符合题目要求(大于1的正整数),避免无效输入导致错误
内容的提问来源于stack exchange,提问作者user20507295
相关产品推荐
相关产品推荐

