#python-3.x
#python-3.x
Вопрос:
У меня следующая проблема:
Улитка и колодец Улитка падает на дно колодца длиной 125 см. Каждый день улитка поднимается на 30 см. Но ночью, во время сна, скользит на 20 см, потому что стены мокрые. Сколько дней требуется улитке, чтобы избежать колодца?
Это мои переменные и код:
well_height = 125
daily_distance = 30
nightly_distance = 20
snail_position = 0
days = 0
while snail_position < well_height:
days = 1
snail_position = daily_distance - nightly_distance
Print (days)
Ответ, который я получаю, равен 13, что неверно, потому что я вычислил, что это 11, потому что в последний день улитка выходит и не скользит обратно. Однако я не знаю, как исправить код.
Ответ №1:
Попробуйте следующее:
well_height = 125
daily_distance = 30
nightly_distance = 20
snail_position = 0
days = 0
while True:
days = 1
snail_position = daily_distance
if snail_position >= well_height:
break
snail_position -= nightly_distance
print(days)
Ответ, который я получил, был 11.
Вы должны иметь в виду, что улитка скользит назад только в том случае, если она не достигает колодца в текущий день. Из-за этого мы добавляем только daily_distance
перед проверкой позиции. После этого, если улитка не сделала этого, мы добавляем ночное расстояние.
Кроме того, я предполагаю, что если улитка достигнет расстояния well_height
, на котором она завершила свое путешествие. Поэтому я изменил логику с snail_position > well_height
на snail_position >= well_height
.
Комментарии:
1. @FFF Нет проблем! Если вы нашли это полезным, вы можете отметить этот ответ правильным. Поступая таким образом, вы поможете другим участникам Stack Overflow легко найти ответ на подобные вопросы.