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

J3. Поменять значение бита Ограничение времени 1 секунда

Ограничение памяти 64Mb

Ввод стандартный ввод или input.txt

Вывод стандартный вывод или output.txt

Заданы два числа

a

и

n

. Вывести число, которое совпадает с

a

во всех битах, кроме

n

-го, а в

n

-м бите отличается. В данной задаче биты нумеруются с единицы.

Формат ввода

Входные данные содержат два целых числа

a

и

n

(

0



a



1

0

1

8

,

1



b



3

2

).

Формат вывода

Выведите одно число — ответ к задаче.


J3. Поменять значение бита Ограничение времени 1 секундаОграничение памяти 64MbВвод стандартный ввод
J3. Поменять значение бита Ограничение времени 1 секундаОграничение памяти 64MbВвод стандартный ввод

Показать ответ
Ответ:
gerl1999
gerl1999
21.07.2021 20:50

#include <iostream>

#include <cmath>

using namespace std;

int main(){

   long long a, answer=0;

   int n, bits[64]={0}, i=0;

   cin>>a>>n;

   while(a!=0){

       if(a%2==0)

           a/=2;

       else {

           bits[i]=1;

           a=(a-1)/2;

       }

       i++;

   }

   bits[n-1]=1-bits[n-1];

   for(int j=0; j<i; j++)

       answer+=bits[j]*pow(2,j);

   cout<<answer;

}

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