Записывает функцию Паскаля, которая, присваивая в качестве параметра натуральное число n, возвращает значение true, если n является и false в противном случае
Поскольку в задании максимальная цифра 7, то это означает что вообще минимально возможная система счисления для этого примера - восьмеричная (потому что в семеричной с.с. цифры 7 быть не может)
Её и проверим переводом в десятичную систему счисления::
74₈ = 7∙8¹+4∙8⁰ = 56+4 = 60₁₀
47₈ = 4∙8¹+7∙8⁰ = 32+7 = 39₁₀
143₈ = 1∙8²+4∙8¹+3∙8⁰ = 64+32+3 = 99₁₀
получаем что 74₈+47₈=143₈ и это то же самое что 60₁₀+39₁₀=99₁₀ - равенство верное, значит исходный пример действительно написан в восьмеричной системе счисления.
var
i, a, b, n, n2, j: longint;
s: string;
flag: boolean;
begin
Write('Введите через пробел границы диапазона: ');
Readln(a, b);
if b < a then begin n := a; a := b; b := n end;
if a < 11 then a := 11;
for i := a to b do
begin
Str(i, s);
n := Length(s); n2 := n div 2; flag := true; j := 1;
repeat
flag := (s[j] = s[n - j + 1]);
j := j + 1
until (not flag) or (j > n2);
if flag then Write(i, ' ')
end;
end.
Тестовое решение:
Введите через пробел границы диапазона: 800 1500
808 818 828 838 848 858 868 878 888 898 909 919 929 939 949 959 969 979 989 999
Объяснение:
8
Объяснение:
Поскольку в задании максимальная цифра 7, то это означает что вообще минимально возможная система счисления для этого примера - восьмеричная (потому что в семеричной с.с. цифры 7 быть не может)
Её и проверим переводом в десятичную систему счисления::
74₈ = 7∙8¹+4∙8⁰ = 56+4 = 60₁₀
47₈ = 4∙8¹+7∙8⁰ = 32+7 = 39₁₀
143₈ = 1∙8²+4∙8¹+3∙8⁰ = 64+32+3 = 99₁₀
получаем что 74₈+47₈=143₈ и это то же самое что 60₁₀+39₁₀=99₁₀ - равенство верное, значит исходный пример действительно написан в восьмеричной системе счисления.