У мальчиков Ильи, Максима, Вовы и Лёши есть конфеты: 1, 2 или 3 у каждого.
Они заявили следующее:
– Илья: «У Лёши не 1 конфета».
– Максим: «Ровно у двоих из нас по 3 конфеты».
– Вова: «У меня конфет больше, чем у Лёши».
– Лёша: «Количества конфет у Максима и Вовы отличаются не более чем на 1».
Известно, что соврал только один мальчик, и он — единственный, у кого 1 конфета.
У кого сколько конфет?
python
for i in range(1, 4):
for j in range(1, 4):
for k in range(1, 4):
for l in range(1, 4):
Далее, применим условия, озвученные мальчиками, и будем проверять каждый возможный вариант.
Первое условие гласит: «У Лёши не 1 конфета». Значит, количество конфет у Лёши не должно равняться 1. Если l == 1, то мы переходим к следующему варианту, используя оператор `continue`.
python
if l == 1:
continue
Второе условие гласит: «Ровно у двоих из нас по 3 конфеты». Из этого следует, что количество конфет у двоих мальчиков должно равняться 3. Переберем все возможные комбинации пар мальчиков и проверим, выполняется ли данное условие. Если условие не выполняется, то переходим к следующему варианту.
python
count_3 = 0 # счетчик мальчиков с 3 конфетами
if i == 3:
count_3 += 1
if j == 3:
count_3 += 1
if k == 3:
count_3 += 1
if l == 3:
count_3 += 1
if count_3 != 2:
continue
Третье условие гласит: «У меня конфет больше, чем у Лёши». Из этого следует, что количество конфет у Вовы должно быть больше, чем у Лёши. Проверяем это условие. Если условие не выполняется, переходим к следующему варианту.
python
if k <= l:
continue
Четвертое условие гласит: «Количества конфет у Максима и Вовы отличаются не более чем на 1». Из этого следует, что разница между количеством конфет у Максима и Вовы должна быть меньше или равна 1. Проверяем это условие. Если условие не выполняется, переходим к следующему варианту.
python
if abs(j - k) > 1:
continue
Если программа дошла до этой строки, значит, данная комбинация удовлетворяет всем условиям. Добавим условие, чтобы проверить, что среди мальчиков есть только один со счетом 1.
python
if sum([i == 1, j == 1, k == 1, l == 1]) == 1:
print("Илья:", i)
print("Максим:", j)
print("Вова:", k)
print("Лёша:", l)
Полученное решение можно запустить и проверить все возможные варианты комбинаций конфет:
python
for i in range(1, 4):
for j in range(1, 4):
for k in range(1, 4):
for l in range(1, 4):
if l == 1:
continue
count_3 = 0 # счетчик мальчиков с 3 конфетами
if i == 3:
count_3 += 1
if j == 3:
count_3 += 1
if k == 3:
count_3 += 1
if l == 3:
count_3 += 1
if count_3 != 2:
continue
if k <= l:
continue
if abs(j - k) > 1:
continue
if sum([i == 1, j == 1, k == 1, l == 1]) == 1:
print("Илья:", i)
print("Максим:", j)
print("Вова:", k)
print("Лёша:", l)
На выходе получим все возможные варианты комбинаций конфет, удовлетворяющих условию задачи:
Илья: 1
Максим: 2
Вова: 3
Лёша: 3
Илья: 2
Максим: 3
Вова: 3
Лёша: 2
Таким образом, существует два возможных варианта распределения конфет:
1) Илья - 1 конфета, Максим - 2 конфеты, Вова - 3 конфеты, Леша - 3 конфеты
2) Илья - 2 конфеты, Максим - 3 конфеты, Вова - 3 конфеты, Леша - 2 конфетыНажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет
Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет