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

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Ввод стандартный ввод

Показать ответ
Ответ:
sasha11225
sasha11225
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-бота