Вопрос задан 01.07.2023 в 09:58. Предмет Информатика. Спрашивает Невский Иван.

На C++, пожалуйста. Дано число N. Разделите его на 2 нацело.В задаче запрещено

использоватьарифметические операции +, -, */и %, а такжеоператоры if / switch и тернарную операцию.Формат входных данныхВ одной строке вводится одно целое число N (0 :N 109).Формат выходных данныхТребуется вывести одно целое число — ответ на задачу.Входные данные17выходные данные8​
0 0
Перейти к ответам

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

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Котов Кирилл.

Ответ:

#include <iostream>

using namespace std;

int main()

{

   int ISI, ANS;

   cin >> ISI;

   ANS ^= ISI >> 1;

   cout << ANS;

}

Объяснение:

Юзаем такие побитовые операции ANS ^= ISI >> 1;

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Для выполнения данной задачи на C++ без использования арифметических операций и операторов условия, можно воспользоваться побитовыми операциями. В частности, сдвиг вправо на 1 бит эквивалентен делению числа на 2.

Вот как это может выглядеть:

cpp
#include <iostream> int main() { int n; std::cin >> n; n >>= 1; // Сдвиг вправо на 1 бит (деление на 2) std::cout << n << std::endl; return 0; }

В данном коде n >>= 1 означает "побитовый сдвиг вправо" на 1 бит. Этот сдвиг делает то же самое, что и операция деления нацело на 2, но без использования арифметических операторов.

Пожалуйста, убедитесь, что вводимые данные соответствуют указаниям задачи (0 <= N <= 10^9), чтобы избежать ошибок.

0 0

Похожие вопросы

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

Последние заданные вопросы в категории Информатика

Задать вопрос