С++ Условие
Даны два числа N и K. Требуется изменить число N так, чтобы в K-м бите этого числа в двоичной системе счисления цифра изменилась на обратную (ноль на единицу, а единица — на ноль), а все остальные разряды остались неизменными.
В задаче запрещено использовать арифметические операции +, -, *, / и %, а также операторы if / switch и тернарную операцию.
Формат входных данных
В одной строке вводятся два целых числа N и K (0 ⩽ K ⩽ 30, 0 ⩽ N < 231). Разряды нумеруются от младшего к старшему начиная с нуля.
Формат выходных данных
Требуется вывести одно целое число — ответ на задачу.
входные данные выходные данные
21 1 23
Відповідь:
#include <iostream>
#include<cmath>
using namespace std;
int main()
{unsigned short N,K;
cin>>N>>K;
K=pow(2,K);
N^=K;
cout<<N;
return 0;
}