alarm
Задайте вопрос
Информатика
Dayton

G3. Проверка значения битаОграничение времени 1 секундаОграничение памяти 64MbВвод стандартный ввод или input. txtВывод стандартный вывод или output. txtЗаданы два числаaиn. Проверить, присутствует ли в записи числаan–й бит. В данной задаче биты нумеруются с единицы. Формат вводаВходные данные содержат два целых числаa и n (0≤a≤1018, 1≤b≤32). Формат вывода Выведите 1, если в записи числа a присутствует n–й бит, и 0 в противном случае. Пример 1Ввод Вывод160Пример 2Ввод Вывод16 2Язык с++

ответы: 1
Зарегистрируйтесь, чтобы добавить ответ
Ответ:

#include <iostream>

using namespace std;

int main(){

long long a;

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++;

}

cout<<bits[n-1];

}

Я обнаружил несколько недочетов в условии. Во-первых, вызвало недоумение то, что сначала номер бита обозначен n, тогда как в диапазоне его значений используется уже буква b. Ладно, допустим, обычная опечатка. Во-вторых, для записи максимально возможного числа 10¹⁸ в двоичной системе потребуется 60 цифр, но здесь утверждается, что спросят не дальше 32 бита. Тогда зачем предусматривать столь большие a? В-третьих, только из примеров стало понятно, что биты нумеруются справа налево

274
Violetka
Чтобы ответить необходимо зарегистрироваться.

Другие вопросы: - Информатика

J3. Поменять значение битаОграни

С++ Степень Даю 25 поинтов, тол

Ниже записана программа. Получив

Написать код ТОЛЬКО НА С++Послед

Дан фрагмент электронной таблицы

Между населёнными пунктами A, B,

Контакты
Реклама на сайте