972₁₀ = 1111001100₂ 1. Число будет иметь минимальное значение, если в нем будет минимально возможное количество значащих разрядов. Таких циклическх сдвигов в данном случае возможно 2 (запишем их друг под другом): 0011001111 - циклический сдвиг на 4 разряда влево; 0011110011 - циклический сдвиг на 8 разрядов влево; 2. При равном количестве разрядов меньшим будет то число, у которого при просмотре разрядов слева направо встретится ноль, в то время как у второго в этом же разряде будет единица (это место выделено): 11001111 - это число меньшее из двух. 11110011 ответ: 11001111₂ = 207₁₀
(1 + 0)*(0+0) + 1*0 (1 + 0) - истинна, т.к. дизъюнкция истинна если хотя-бы одна из переменных истинна (0 + 0) - ложна, т.к. обе перменные ложны (1 + 0)*(0+0) - ложна, т.к. первая скобка истинна, а вторая ложна, а в конъюнкции для истины обе скобки должны быть истинны. 1*0 - ложна, т.к. в конъюнкции обе переменные должны быть истинны.
Для удобства разделил скобками ((1 + 0)*(0+0)) + (1*0) - ложна, т.к. первая (большая) скобка ложна, вторая скобка (1*0) тоже ложна, между ними дизъюнкция, то есть хотя-бы одна из них должна быть истинна. Они обе ложны, значит результатом выражения
#include <array>
#include <numeric>
using namespace std;
const size_t N = 10;
int main()
{
size_t sum = 0;
array<int, N> a = { 1, 5, 9, 6, 3, 0, 1, 4, -2, 4 };
cout << "Count: ";
cout << accumulate(a.cbegin(), a.cend(), 0, [&sum](size_t count, const int
num) {
if (num > 1 && num < 5) {
++count;
sum += num;
}
return count;
});
cout << " Sum: " << sum << endl;
}