Курс 3.8 — Алгоритмы · Раздел 01 · Урок 1.2

Задача 1.1 — Обмен значений двух переменных

Рассмотрим два способа обменять значения переменных и разберём их по шагам.

Рассмотрим два способа обменять значения переменных и разберём их по шагам.
1.2 — Задача 1.1 — Обмен значений двух переменных

Материал урока

Теперь, когда мы узнали, что такое алгоритм, давай попробуем решить несколько задач и по пути посмотрим, какие у них алгоритмические особенности. Я буду твоим напарником и помогу разбираться шаг за шагом.

Представь, что у нас есть два целых числа a и b. Нам нужно поменять их местами, чтобы в a оказалось то, что было в b, и наоборот.

Один из простых способов — использовать третью переменную:

a = int(input("Введите число a: "))
b = int(input("Введите число b: "))

temp = a
a = b
b = temp

print(a, b)

Как работает алгоритм:

  1. Сохраняем значение a во временную переменную temp.
  2. Кладём в a значение из b.
  3. Кладём в b значение из temp.

Но можно быть хитрее и обойтись без третьей переменной! Например, с помощью сложения и вычитания:

a = int(input("Введите число a: "))
b = int(input("Введите число b: "))

a = a + b
b = a - b
a = a - b

print(a, b)

Здесь мы:

  1. Записали в a сумму a + b.
  2. Вычли из этой суммы b — получили старое a, и сохранили его в b.
  3. Из нового a вычли новое b — получили старое b и сохранили в a.

Но у этого способа есть минусы:

  • Он работает только с числами (строки или картинки так не поменяешь).
  • С очень большими числами может произойти переполнение (но в Python это почти не проблема, а вот в некоторых языках — серьёзно).