1. Отметим, что приписывание к двоичному числу двух младших
разрядов предполагает предварительный сдвиг этого числа влево на два разряда
(что равносильно умножению на 2²=4), а затем установку двух младших разрядов в
соответствующие приписываемым битам значения. Следовательно, можно записать,
что 4N+a>43, где a - число, образованное приписываемыми справа битами,
которое не может превышать 11(2)=3(10)
4N+[0..3]≥44, откуда минимальное N=11
Теперь запишем N=11 в двоичной системе и применим к нему
заданный алгоритм.
N=1011(2), число единиц три, нечетное, приписываем 1,
получая 10111.
Теперь число единиц четное, приписываем 0 и получаем
R=101110(2).
В десятичной записи ему соответствует число 46.
<span>Ответ: 46</span>
Решение в прикрепленном файле в 3-х циклах, но работать эта программа будет медленнее,
если число N - простое.
С минимальной степенью сжатия. чем больше сжатие, тем медленее процесс
Перевести число 100110 из двоичной в десятичную
===== PascalABC.NET =====
begin
var (a, b, R) := ReadReal3('Введите a, b, R:');
var (x0, h, xn) := ReadReal3('Введите x0, h, xn:');
var (x, k) := (x0, 0);
while x <= xn + h / 2 do
begin
if Sqr(x - a) + Sqr(Sin(x) + Cos(x) - b) <= R * R then
k += 1;
x += h
end;
Print('Количество значений равно', k)
end.