Как вывести следующее четное число в python
Перейти к содержимому

Как вывести следующее четное число в python

  • автор:

определить вид числа без условных операторов и циклов [закрыт]

Учебные задания допустимы в качестве вопросов только при условии, что вы пытались решить их самостоятельно перед тем, как задать вопрос. Пожалуйста, отредактируйте вопрос и укажите, что именно вызвало у вас трудности при решении задачи. Например, приведите код, который вы написали, пытаясь решить задачу

Закрыт 2 года назад .

Задача: Дано целое число n. Выведите следующее за ним четное число. Задачу необходимо решить целочисленными операциями без использования условных операторов и\или циклов. ввод: 5, вывод: 6; ввод: 6, вывод: 8

Отслеживать
задан 30 окт 2020 в 13:37
5 2 2 бронзовых знака
Задаче тебе, тебе и выполнять.
30 окт 2020 в 13:38
@Эникейщик, спасибо за помощь
30 окт 2020 в 13:40

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

Выведите следующее за ним четное число

подсказка 1: если разделить целочисленно целое число на 2, а потом умножить на 2, то получиться. чётное число не больше изначального

дальше думайте сами

подсказка 2.1: если сбросить самый правый бит натуральному числу, то получится чётное число не больше изначального

подсказка 2.2: числа в битовом представлении легко записывать через 0b , например 0xb1110111

дальше думайте сами

подсказка 3: условия можно записывать неявно, преобразовывая булев тип в целочисленный, например int(False) = 0, а int(True) = 1, а полученные 0/1 очень хорошо умножаются на любые натуральные числа 🙂

дальше думайте сами

В общем ваша задача решается минимум 3 способами + их вариациями (т.е. решений 5-10 сделать можно разной степени извращённости)

Следующее число за n

Дан битовый (двоичный) вектор длины n, требуется вывести следующий в лексикографическом порядке после него.

Замечание: обратите внимание на то, что ограничения не позволяют сгенерировать все векторы; требуется найти следующий вектор, зная только текущий.

Входные данные
В первой строке задано число n — длина битового вектора (1⩽n⩽106). На следующей строке задан сам вектор — строка длины n из нулей и единиц.

Выходные данные
Требуется вывести следующий в лексикографическом порядке вектор в виде такой же строки из нулей и единиц. Следующим после вектора из всех единиц считайте лексикографически первый вектор, то есть вектор из всех нулей.

Пример
входные данные
3
101
выходные данные
110

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
n = int(input()) a = input() if "0" in a: b = int(a, 2) c = b + 0 n = c + 1 b = '' while n > 0: b = str(n % 2) + b n = n // 2 print(b) else: b = "" for i in range(n): b = b + "0" print(b)

У меня такая идея, перевести эту строку в десятичное число(101 —> 5) потом прибавить 1 (5 —> 6) и обратно в двоичное число(6 —> 110). С этим все понятно, все выводит. Но если поставить ведующие нули на ввод строки, например «010» то выводит «11»(логично), а надо чтобы выводило «011». вот может есть идеи у кого как это сделать?

(код довольно кривой, но работает)

Добавлено через 5 минут
если кратко то вывести следующее двоичное число

Помогите решить задачу и написать программу на Python

Дано целое число n. Выведите следующее за ним чётное число. При решении этой задачи нельзя использовать условный оператор if и циклы.

Подсказка. В Python существует оператор целочисленного деления // (обсуждался в видеоуроках) и взятия остатка при делении %. Например, результат выполнения операции 15 % 7 равен 1:

Лучший ответ

n = 14
print(n + 2 — n % 2)

Остальные ответы

Дано целое число n. Выведите следующее за ним четное число. При решении этой задачи нельзя использовать условную инструкцию if и циклы. в Python.

danielk1

Выбери, какие основные угрозы существуют в Интернете Общение с незнакомыми людьми в чатах или по электронной почте Поиск развлечений (например, игр) в … Интернете Угроза заражения вредоносным программным обеспечением (ПО) Установка нелицензионного программного обеспечения​

які об‘єкти табличного процесора Excel ви знаєте? які їх властивості

Введи оценку (0 — остановить ввод): >>> 5 Введи балл (0 — остановить ввод): >>> 4 Введи балл (0 — остановить ввод): >>> 2 В … веди балл (0 — остановить ввод): >>> 3 Введи балл (0 — остановить ввод): >>> 0 Список оценок: [5, 4, 2, 3] Успеваемость: 75.0

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *