- Теория:
- Алгоритмы:
- Числа:
|
ГЛАВА III
ЗАДАЧИ С РЕШЕНИЯМИ
Палиндромы
|
1. Проверить, является ли число, вводимое с клавиатуры, палиндромом.
2. Найти палиндромы в заданном интервале.
3. Найти первый трехзначный палиндром, сумма цифр которого - двузначное число.
|
1. Проверить, является ли число, вводимое с клавиатуры, палиндромом.
Ответ:
x=121
121 - палиндром |
или |
x=123
123 - не палиндром |
program pal_01;
uses crt;
var x, xx, c, x1: integer;
{x - исходное число;
xx - дубликат исходного числа;
x1 - обратное число;
c - цифра исходного числа}
begin clrscr;
write('x='); readln(x);
xx:=x; {создали дубликат исходного числа}
while x< >0 do {применим алгоритм разделения числа на цифры для сборки обратного числа}
begin
c:=x mod 10;
x:=x div 10;
x1:=x1*10+c; {учитываем порядок цифр числа}
end;
{если обратное число равно дубликату исходного числа:}
If x1=xx then writeln(xx, ' - палиндром')
else writeln(xx, ' - не палиндром')
end.
|
2. Найти палиндромы в заданном интервале.
Ответ:
a=10
b=12
10 - не палиндром
11 - палиндром
12 - не палиндром
program pal_02;
uses crt;
var a,b, max,min, x, c, x1: integer;
{a,b - границы интервала;
max, min - определение границ интервала как минимальное и максимальное число;
x - дубликат исходного числа;
x1 - обратное число;
c - цифра исходного числа}
begin clrscr;
write('a='); readln(a); {ввод границ интервала}
write('b='); readln(b);
if a>b then begin max:=a; min:=b end {определение границ интервала как минимальное и максимальное число}
else begin max:=b; min:=a end ;
while min<=max do {пока нижняя граница интерваа не сравняется с верхней}
begin
x:=min; {создали дубликат исходного числа}
x1:=0;
while x< >0 do {применим алгоритм разделения числа на цифры для сборки обратного числа}
begin
c:=x mod 10;
x:=x div 10;
x1:=x1*10+c; {учитываем порядок цифр числа} end;
{если обратное число равно исходному числу:}
If x1=min then writeln(min, ' - палиндром') else writeln(min, ' - не палиндром');
inc(min);
end;
end.
|
3. Найти первый трехзначный палиндром, сумма цифр которого - двузначное число.
Ответ:
x=191 Sc=11
program pal_03;
uses crt;
var i, Sc, x, c, x1: integer; { i - трехзначные числа;
Sc - сумма цифр;
x - дубликат исходного числа;
x1 - обратное число;
c - цифра исходного числа} begin
end.
|
|
|
|
|
|