Найти количество таких чисел, двоичное представление которых является "перевертышем" - PascalABC.NET

Узнай цену своей работы

Формулировка задачи:

Составьте программу, которая среди чисел от A до B (1<=A,B<=32000) найдет количество таких чисел, двоичное представление которых является перевертышем, т.е. читаются одинаково справа налево и слева направо.

Решение задачи: «Найти количество таких чисел, двоичное представление которых является "перевертышем"»

textual
Листинг программы
  1. Const
  2.   Rn : String[36] = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
  3.  
  4. Function DecToN(a : Longint; Raz : Byte) : String;
  5. Begin
  6.   If a>Raz-1 then DecToN:=DecToN(a div Raz,Raz)+Rn[(a mod Raz)+1]
  7.   else DecToN:=Rn[a+1];
  8. end;
  9.  
  10. Function StRevers(St : String) : String;
  11. Begin
  12.   If Length(St)>1 then StRevers:=St[Length(St)]+StRevers(Copy(St,2,Length(St)-2))+St[1]
  13.    else StRevers:=St;
  14. end;
  15.  
  16. Const
  17.   A = 1;
  18.   B = 32000;
  19. Var i : Integer;
  20. Begin
  21.   For i:=A to B do If DecToN(i,2)=StRevers(DecToN(i,2)) then Writeln(i:8,'  ',DecToN(i,2));
  22. end.

Объяснение кода листинга программы

  1. Объявляются константы: Rn - строка, содержащая все возможные символы двоичного представления чисел от 0 до 35, A и B - границы перебора чисел.
  2. Объявляются функции: DecToN - функция, преобразующая десятичное число в строку, представляющую его в двоичной системе счисления, с заданным количеством разрядов в двоичном числе, StRevers - функция, переворачивающая строку.
  3. В основной части программы перебираются все числа от A до B (включительно) с помощью цикла for.
  4. Для каждого числа проверяется, является ли его двоичное представление перевертышем. Для этого вызывается функция StRevers, которой передается двоичное представление числа, полученное с помощью функции DecToN.
  5. Если двоичное представление числа является перевертышем, то выводится число и его двоичное представление.
  6. В функции DecToN используется деление с остатком для определения количества разрядов в двоичном числе.
  7. В функции StRevers используется срез, чтобы получить строку, начиная с последнего символа, затем с предпоследнего, и так далее, пока не будет получена строка, содержащая один символ.
  8. Затем в обратном порядке добавляются символы, начиная с предпоследнего, затем с еще более предпоследнего, и так далее, пока не будет получена исходная строка, перевернутая в обратном порядке.
  9. Если исходная строка содержит один символ, то перевернутая строка остается неизменной.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.8 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы