Advertisement
mirovlad

m[i] + m[j] = z

Jul 11th, 2022
39
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.97 KB | None | 0 0
  1. #m = [.....]
  2. z = int(input("Enter z = "))
  3.  
  4. found = False
  5. found_idx1 = None
  6. found_idx2 = None
  7.  
  8. # Речник, който пази коя стойност на коя позиция е:
  9. r = {}
  10. for idx, value in enumerate(m):
  11.     r[value] = idx
  12.  
  13. for idx1, i in m:
  14.     # diff е "допълващата" стойност, от която i се нуждае, така че i + diff да даде z
  15.     diff = z - i
  16.     if diff in m:  # Проверяваме има ли такава допълваща стойност
  17.         # Щом има такава стойност, намираме нейната позиция (с помощта на r)
  18.         idx2 = r[diff]
  19.         if idx1 != idx2:
  20.             # Щом i и допълващата diff са на различни позиции, значи сме намерили търсеното
  21.             found = True
  22.             found_idx1 = idx1
  23.             found_idx2 = idx2
  24.            
  25. if found:
  26.     print("m[{found_idx1}] + m[{found_idx2}] = {z}")
  27. else:
  28.     print("No such pair found")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement