
Вопрос задан 09.05.2019 в 11:48.
Предмет Информатика.
Спрашивает Федотов Миша.
Нужно без циклов,только одним-единственным выражением с помощью операций {+, -, *, //, % } вывести
выражение, которое напечатает 'NO', если A не делится на B. Эта задача кусок от другой.выражение, которое печатает 'YES' в случае если A кратно B я вывела. идея в том,чтобы требуемое выражение для случая "не делится" давала 1 если A НЕ кратно B, и 0 если кратно. прикрепляю своё решение для 'YES' A = int(input()) B = int(input()) print( 'YES' * (((A // B) - (A % B)) // (A // B)) ) # print('NO'*(((A + A % B) // B) // (A // B))) ---- не работает решение подойдёт на любом языке в любом виде.главное, чтобы без читерских функций и методов

Ответы на вопрос

Отвечает Дауранбекова Сания.
Ловите решение.
Задача сложна тем, что остаток от деления может быть может быть любым, от 1 до B-1. Поэтому она свелась к тому, чтобы ЛЮБОЕ число представить как 1. А нуль оставить нулём. Простейшим решением этой подзадачи явилось следующее: ( (Х + 2) // (Х + 1) ) % 2. В таком случае при Х = 0 левая часть выражения становится равна 2 и результат вычислений - 0. А при любом другом числе левая часть равна 1 и результат вычислений тоже будет 1. Теперь осталось выразить Х через А и В.
(((А % В) + 2) // ((А % В) + 1)) % 2.
Однако, следует помнить, что % - это операция деления, и при В = 0 интерпретатор или компилятор выдаст ошибку.
Для варианта с YES можно было бы использовать print('YES' * 1 - (А % В)).
Задача сложна тем, что остаток от деления может быть может быть любым, от 1 до B-1. Поэтому она свелась к тому, чтобы ЛЮБОЕ число представить как 1. А нуль оставить нулём. Простейшим решением этой подзадачи явилось следующее: ( (Х + 2) // (Х + 1) ) % 2. В таком случае при Х = 0 левая часть выражения становится равна 2 и результат вычислений - 0. А при любом другом числе левая часть равна 1 и результат вычислений тоже будет 1. Теперь осталось выразить Х через А и В.
(((А % В) + 2) // ((А % В) + 1)) % 2.
Однако, следует помнить, что % - это операция деления, и при В = 0 интерпретатор или компилятор выдаст ошибку.
Для варианта с YES можно было бы использовать print('YES' * 1 - (А % В)).



Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.
Чтобы получить выражение, которое выведет 'NO', если A не делится на B, вы можете использовать следующее однострочное выражение:
```python print('NO' * (1 - A % B // (A // B))) ```
Это выражение использует операции `{+, -, *, //, %}` и создает строку 'NO' в случае, если A не делится на B, и строку пустую в противном случае.


Топ вопросов за вчера в категории Информатика

Информатика 2132

Информатика 63

Информатика 14

Информатика 32

Информатика 19

Информатика 15

Информатика 175

Информатика 31

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