📌  相关文章
📜  教资会网络 | UGC NET CS 2018 年 12 月 – II |问题 48(1)

📅  最后修改于: 2023-12-03 15:10:15.950000             🧑  作者: Mango

UGC NET CS 2018 年 12 月 – II | 问题 48

本题是一道计算机科学的编程题,要求编写一个程序实现特定的功能。

题目描述

编写一个程序,在一个数字列表中找到两个数字,它们的和等于一个给定的数字 k。程序应该打印这两个数字以及它们在列表中的索引。

输入格式

第一行输入一个整数 T,表示测试用例的数量。

每个测试用例的第一行有两个整数 N 和 K,其中 N 表示列表的长度,K 表示要求得和的数字。

列表的下一行有 N 个以空格分隔的整数,表示列表中的元素。

输出格式

对于每个测试用例,输出两个整数 a 和 b,以及它们在列表中的索引(从 0 开始)。

如果没有满足要求的数字,则输出 -1。

样例输入

2 7 98 1 2 3 5 6 7 9 6 24 12 13 15 18 19 21

样例输出

2 5 2 4 -1

程序实现
def find_indices(n, k, lst):
    indices = []
    for i in range(n):
        for j in range(i + 1, n):
            if lst[i] + lst[j] == k:
                indices.append(i)
                indices.append(j)
                return indices
    return [-1]


t = int(input())
for _ in range(t):
    n, k = map(int, input().split())
    lst = list(map(int, input().split()))
    result = find_indices(n, k, lst)
    print(*result)

返回的代码片段是markdown格式的,如下所示:

```python
def find_indices(n, k, lst):
    indices = []
    for i in range(n):
        for j in range(i + 1, n):
            if lst[i] + lst[j] == k:
                indices.append(i)
                indices.append(j)
                return indices
    return [-1]


t = int(input())
for _ in range(t):
    n, k = map(int, input().split())
    lst = list(map(int, input().split()))
    result = find_indices(n, k, lst)
    print(*result)