数値リストとターゲット値を使用して、Python で 2 つの数値の合計を計算します

1. 整数リスト nums とターゲット値 target が与えられた場合、配列内で合計がターゲット値となる 2 つの整数を見つけて、それらのリスト インデックスを返します。‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬ ‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬

各入力は 1 つの回答のみに対応する必要があります。ただし、この配列内の同じ位置にある要素を再利用することはできません。‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬
解決策が見つからない場合は
2 行入力して出力します。


3 2 4 1 5
6

1 行目はスペースで区切られた整数のセットを入力し、データはすべて int 型です。‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬
2行目の入力は整数
出力です


1 2

解がある場合は、最初のデータセット (最小のインデックスを持つ最初の要素) の解を出力します。‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬
解決策がない場合は

2. コード部分


lst=list(map(int,input().split()))
# split()是将输入的字符以空格分隔,map是转换为int类型的数据,最后再转换为列表
# 转化后为[3,2,4,1,5]
target=eval(input())
t=len(lst)
# 求lst的长度
flag=0
# 设置一个标志数
for i in range(t):
    if flag==1:
        break
    else:
    # 说明是从小到大来进行遍历的
        for j in range(t):
            if lst[i]+lst[j]==target and i!=j :
                print("{} {}".format(i,j))
                flag=1
                break
# 找不到数据,就是flag==0,按规定返回
if flag==0:
    print("Fail")


3. 結果は次のとおりです

3 2 4 1 5
6
1 2

おすすめ

転載: blog.csdn.net/m0_74459049/article/details/130126201