igorich1376

PascalABC_Net for EGE_1

Jul 7th, 2025
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 1.97 KB | None | 0 0
  1. {
  2. На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом
  3. 1) Строится двоичная запись числа N.
  4. 2) К этой записи дописываются справа ещё два разряда по следующему правилу:
  5. а) складываются все цифры двоичной записи, и остаток от деления суммы на 2 дописывается в конец числа (справа).
  6. Например, запись 11001 преобразуется в запись 110011;
  7. б) над этой записью производятся те же действия: справа дописывается остаток от деления суммы цифр на 2.
  8. Полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа N)
  9. является двоичной записью искомого числа R. Укажите максимальное число N,
  10. для которого результат работы алгоритма не превышает 226.
  11. В ответе это число запишите в десятичной системе
  12. }
  13. ## uses school;
  14. var summ := 0;
  15. for var i := 1 to 1000 do
  16. begin
  17.   var N := i; Println('Число на входе:', N);
  18.   var digit_binary := Bin(N);
  19.   for var j := 1 to Length(digit_binary) do
  20.     if digit_binary[j] = '1' then summ += 1;
  21.   var digit_R := digit_binary + summ mod 2 + summ mod 2;
  22.   Println('Двоичная запись R:', digit_R);
  23.   var digit_R_decimal := Dec(digit_R,2);
  24.   Println('Окончательное число:', digit_R_decimal);
  25.   Println('============================================');
  26.   if digit_R_decimal >= 226 then
  27.     begin
  28.     Print('Стоп! =', i); break;
  29.     end;
  30. end;
Advertisement
Add Comment
Please, Sign In to add comment