И снова я))) Условие: Механический попугай Лёшенька готовит бургеры по рецепту тёти Нюры: две булочки и котлета между ними. Перед ним в ряд лежат n булочек:
◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎
На некоторые булочки Лёшенька кладёт котлеты. На каждую булочку справа от такой тётя Нюра кладёт салат и ложку соуса, чтобы потом соединить два в одно. В итоге у них получается k бургеров. Число «пустых» булочек между каждыми двумя заготовками для бургеров одинаковое. Оно равно числу «пустых» булочек слева и справа, как на схеме (для n=13, k=2):
◎ ◎ ◎ ◉ ◉ ◎ ◎ ◎ ◉ ◉ ◎ ◎ ◎
Дано n (количество булочек) и k (количество бургеров). Выведи количество булочек между каждыми двумя бургерами.
Мое решение:
n=int(input())
k=int(input())
x=n-k*2
m=x//2
while (x % m!=0):
m=m-1
print(m)
Подскажите, что подправить. Буду очень благодарен)

arturshubin24 arturshubin24    3   28.01.2022 00:32    214

Ответы
mayte mayte  16.01.2024 11:43
Привет! Давай посмотрим на твоё решение и улучшим его.

В начале ты правильно вводишь значения для переменных "n" и "k" с помощью функции input(). Это отличный первый шаг.

Далее у тебя есть переменная "x", которая равна разнице между общим количеством булочек и двойным количеством булочек, необходимых для каждого бургера. Таким образом, "x" представляет собой количество "пустых" булочек - это тоже правильно.

Однако, целью задачи является определить количество "пустых" булочек между каждыми двумя бургерами, а не общее количество "пустых" булочек. Поэтому имя переменной "x" может быть малоинформативным.

Чтобы найти количество "пустых" булочек между каждыми двумя бургерами, нам нужно поделить общее количество "пустых" булочек на количество бургеров минус один. Предлагаю назвать эту переменную "empty_buns_between_burgers". Мы получим следующее:

empty_buns_between_burgers = x // (k-1)

Далее, ты использовал цикл while для поиска искомого значения. Хотя это может работать, у нас есть более простой и эффективный способ.

Мы знаем, что количество "пустых" булочек между каждыми двумя бургерами должно быть целочисленным значением. Поэтому изменим наше решение, чтобы найти наибольшее целое число, которое делит "x" без остатка.

empty_buns_between_burgers = x // (k-1)

Получается, что при вводе значения 13 для "n" и значения 2 для "k", мы получаем:

x = 13 - 2*2 = 13 - 4 = 9
empty_buns_between_burgers = 9 // (2-1) = 9

Таким образом, число "пустых" булочек между каждыми двумя бургерами равно 9.

Наконец, заменим функцию print() в конце программы, чтобы вывести значение переменной "empty_buns_between_burgers":

print(empty_buns_between_burgers)

Вот конечный вариант программы:

```python
n = int(input())
k = int(input())
x = n - k*2
empty_buns_between_burgers = x // (k-1)
print(empty_buns_between_burgers)
```

Надеюсь, это помогло! Если у тебя есть еще вопросы, не стесняйся спрашивать. Удачи!
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика