Определить в каких системах счисления ( с основанием от 2 до 10 ) заданное число является палиндромом - Pascal ABC

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

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

Привет всем, нужна помощь с такой задачкой на Pascal ABC:

Определить в каких системах счисления ( с основанием от 2 до 10 ) заданное число является палиндромом.

Буду оч благодарен)))

Решение задачи: «Определить в каких системах счисления ( с основанием от 2 до 10 ) заданное число является палиндромом»

textual
Листинг программы
const zn:string[10]='0123456789';
function Convert(a:longint;base:byte):string;
var s:string;
begin
s:='';
repeat
s:=zn[(a mod base)+1]+s;
a:=a div base;
until a=0;
Convert:=s;
end;
function palindrom(s:string):boolean;
var i:integer;
begin
i:=1;
while (i<=length(s) div 2)and(s[i]=s[length(s)-i+1])do inc(i);
palindrom:=i>length(s) div 2;
end;
var n,i,j,k,d:longint;
    s:string;
begin
write('Введите натуральное число в десятичной системе n=');
readln(n);
k:=0;
writeln('В каких системах счисления от 2 до 10 число ',n,' является палиндромом');
for i:=2 to 10 do
 begin
  j:=n;
  s:=Convert(j,i);
  if palindrom(s) then
   begin
    writeln('В СС ',i,'=',s);
    k:=1;
   end;
  end;
 if k=0 then write('Таких СС нет')
end.

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

В данном коде реализованы две функции:

  1. Функция Convert(a:longint;base:byte) преобразует число a из десятичной системы счисления в систему счисления с основанием base.
  2. Функция palindrom(s:string) проверяет является ли строка s палиндромом (то есть равна своему перевернутому варианту). Затем определены переменные: n - число, которое вводится пользователем. i, j, k, d - вспомогательные переменные для выполнения операций. s - строка, которая используется для промежуточного хранения результата преобразования числа в различные системы счисления. Далее пользователю предлагается ввести натуральное число в десятичной системе счисления, после чего выполняется цикл, который проверяет, является ли это число палиндромом в системах счисления от 2 до 10. Для каждого значения i из диапазона от 2 до 10 выполняется следующее:
  3. Число n преобразуется в систему счисления с основанием i с помощью функции Convert.
  4. С помощью функции palindrom проверяется, является ли полученная строка палиндромом.
  5. Если условие выполняется, то выводится сообщение В СС i=s, где i - система счисления, а s - полученная строка. После выполнения цикла выводится сообщение Таких СС нет, если ни для одной системы счисления условие не выполнилось.

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


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

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

15   голосов , оценка 4.333 из 5
Похожие ответы