Нужно посчитать количество единичных бит, запрещается использовать любые арифметические операции (даже инкремент) и любые сторонние библиотеки (кроме iostream). Разрешается использование циклов и условных операторов.
Входные данные: 7 Выходные данные: 3
#include <iostream>
using namespace std;
int main(){
int t,x = 0;
cin >> x;
while (x != 0) {
t += 1; x &= x-1;
}
cout<<t;
}
Пытался делать, но получается только с инкрементом
Вот же задание..
unsigned increment(unsigned value) {
unsigned bit = 1;
while (value & bit) {
value ^= bit;
bit <<= 1;
}
value |= bit;
return value;
}
int ones(unsigned i) {
unsigned bit = 1;
int res = 0;
while (bit) {
if (i & bit)
res = increment(res);
bit <<= 1;
}
return res;
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Продолжение изучения CMake: Как добавить qt классы в подпроект?Теперь необходимо без корневого файла CMakeLists
Как ввести массив E[N][N] с клавиатуры? получилось только определить с помощью #define
Есть вот такой пользовательский литералЯ бы хотел выкинуть предупреждение в случае если принимаемое значение не лежит в диапазоне 0