Нахождение количества двузначных чисел с отрицанием условия "≤81 И НЕ(чётное окончание)"

vladislavfomuns

Новичок
Пользователь
Дек 11, 2024
5
0
1
условие:Найдите количество двухзначных натуральных чисел X, для которых ложно высказывание:
(X <= 81) И НЕ (X оканчивается на четную цифру)

Python:
k = 0
for x in range(10,1000):
    if (x <= 81) and ((x % 10) % 2 == 0) == 0:
        k += 1
print(k)
ответ 54,а выдает 36
 
Последнее редактирование модератором:

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 668
476
83
ответ 54,а выдает 36
при вашем условии правильный ответ 36
 

vladislavfomuns

Новичок
Пользователь
Дек 11, 2024
5
0
1
при вашем условии правильный ответ 36
а в ответах к задаче 54
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 668
476
83
а в ответах к задаче 54
посмотрите в дебагере пошагово, никаких ошибок нет
 

vladislavfomuns

Новичок
Пользователь
Дек 11, 2024
5
0
1
FireShot Capture 012 - ЕГЭ по информатике_ генератор вариантов - kpolyakov.spb.ru.png
 

Vershitel_sudeb

Vershitel sudeb
Команда форума
Модератор
Мар 17, 2021
973
220
43
21
Москва
Может тебя натолкнет на ответ в чем проблема тот факт, что всего двухзначных натуральных чисел 90, у тебя ответ 36, а правильный - 54 (36 +54 = 90)
 

Dr. Mundo

Модератор
Команда форума
Модератор
Фев 13, 2024
17
1
3
Давайте разберем эту задачу пошагово:

1) Нам нужно найти числа X, для которых ложно высказывание:
(X ≤ 81) И НЕ (X оканчивается на четную цифру)

2) Применяя закон де Моргана, отрицание конъюнкции это дизъюнкция отрицаний:
НЕ(X ≤ 81) ИЛИ НЕ(НЕ(X оканчивается на четную цифру))

3) Упрощаем:
(X > 81) ИЛИ (X оканчивается на четную цифру)

4) Исправим код:

Python:
k = 0
for x in range(10, 100):  # только двузначные числа (от 10 до 99)
    if (x > 81) or ((x % 10) % 2 == 0):  # x > 81 ИЛИ x оканчивается на четную цифру
        k += 1
print(k)

Ошибки в исходном коде:
1) Диапазон был до 1000, хотя нужны только двузначные числа (10-99)
2) Условие было неправильно записано - использовалась конъюнкция вместо дизъюнкции
3) Отрицание четности было записано некорректно

Проверка решения:
- Двузначные числа больше 81: 82-99 (18 чисел)
- Двузначные числа, оканчивающиеся на четную цифру (0,2,4,6,8) и не превышающие 81:
10,12,14,16,18,20,22,24,26,28,30,...,80 (36 чисел)

Всего: 18 + 36 = 54 числа

Исправленный код выдаст правильный ответ 54.
 

Форум IT Специалистов