给定一个数字,找到5对数字,其中每对的总和等于给定数字

时间:2019-05-04 22:02:27

标签: python

由于某种原因,我不知道如何启动此代码。我试图找到五对数字,每对数字之和等于给定数字。

2 个答案:

答案 0 :(得分:1)

这个问题不应该太难解决。假设目标值是10,那么您想要获得的第一对是(10,0)。之后,您可以从上一对中减去1:

  • 1-(10,0)
  • 2-(11,-1)
  • 3-(12,-2)

我想你在这里有了主意。如果您想使事情更专业,可以将目标数字除以2,这将为您提供以下对:(5,5)。 然后,您可以生成一个随机整数并使用相同的逻辑。

  • 如果陈述对为(5,5)
  • 生成一个随机数(比方说3)->(8,2)
  • 生成一个随机数(比如说7)->(12,-2)

唯一需要注意的是,如果该对已经被使用过。在这种情况下,您只需将“使用的”随机数存储在数组中即可。

from random import randint

def get_pairs(target):
    used_numbers = []
    for i in range(5):
       random_int = randint(0, 20)
       while(random_int in used_numbers):
           random_int = randint(0, 20)
       print(str(target + random_int) + "," + str(target - random_int))

答案 1 :(得分:0)

以下是使用random.randint()的简单示例:

import random

iNum = input("Enter number: ")
num = int(iNum) if iNum.isnumeric() else 256 # I just wanted to test

pairs = []

while len(pairs) < 5:
    num1 = random.randint(0, num)
    pairs.append((num1, num-num1))

print("Pairs: {0}".format(pairs))

基本思想是选择一个介于0和您的数字之间的数字。您可能可以进一步改善(使用负值作为开始/结束范围等)