В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
Filippoa1203
Filippoa1203
21.12.2021 14:38 •  Информатика

Определите, при каком наименьшем введённом значении переменной s программа выведет число 23. s = int(input()) n = 50
while s > 0:
s = s // 2
n = n - 3
print(n)
Ввожу вот этот код:
for s in range(1,1000):
n = 50
while s > 0:
s = s // 2
n = n - 3
if n == 23:
print(i)
break
но выдаёт 0, что не так?

Показать ответ
Ответ:
sofmeo
sofmeo
23.01.2024 08:59
Привет! Посмотрим на вашу программу по шагам, чтобы понять, почему она выводит 0 вместо ожидаемого значения 23.

1. Ваш код начинается с цикла "for s in range(1,1000):", который означает, что переменная s будет принимать значения от 1 до 999 включительно.

2. Далее, для каждого значения s вы устанавливаете значение переменной n равным 50.

3. Затем начинается цикл "while s > 0:", который будет выполняться до тех пор, пока значение переменной s больше 0.

4. Внутри цикла вы делите значение переменной s на 2 с использованием оператора "//" для целочисленного деления. Это означает, что результат деления будет целым числом без остатка.

5. Затем вы уменьшаете значение переменной n на 3.

6. После завершения цикла while вы проверяете, равно ли значение переменной n 23. Если это так, вы выводите значение переменной i (вместо i следует использовать переменную s).

7. Если значение n не равно 23, то цикл переходит к следующему значению s в диапазоне.

Теперь давайте разберемся, почему программа выводит 0 вместо 23.

Проблема заключается в том, что вы используете переменную i вместо s в выражении "print(i)", которая не определена в вашей программе. Вместо этого следует использовать переменную s, так как она отвечает за текущее значение в цикле for.

Исправьте ошибку, заменив "print(i)" на "print(s)".

Вот исправленный код:

```python
for s in range(1,1000):
n = 50
while s > 0:
s = s // 2
n = n - 3
if n == 23:
print(s)
break
```

После внесения этого исправления ваша программа должна правильно выводить наименьшее значение переменной s, при котором значение переменной n становится равным 23.
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота