- Информатика
- J3. Поменять значение бита
J3. Поменять значение бита Ограничение времени 1 секунда
Ограничение памяти 64Mb
Ввод стандартный ввод или input.txt
Вывод стандартный вывод или output.txt
Заданы два числа
a
и
n
. Вывести число, которое совпадает с
a
во всех битах, кроме
n
-го, а в
n
-м бите отличается. В данной задаче биты нумеруются с единицы.
Формат ввода
Входные данные содержат два целых числа
a
и
n
(
0
≤
a
≤
1
0
1
8
,
1
≤
b
≤
3
2
).
Формат вывода
Выведите одно число — ответ к задаче.
#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;
}