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