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

taras9877 taras9877    1   21.07.2021 20:48    5

Ответы
Vikanigmatulina Vikanigmatulina  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;

}

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика