Помощь - Поиск - Пользователи - Календарь
Полная версия: Палидром > Информатика / Программирование
Образовательный студенческий форум > Другие дисциплины > Информатика / Программирование
Ангел
Пожалуйста помогите решить задачу.
Дано число n. Если это не палиндром реверсируйте цифры и сложите их с первоначальным числом так до тех пор пока сумма не станет полидромом например
78+87=165
165+561=726
726+627=1353 и т.д

Я тут начала делать но что делать дальше не знаю. Очень прошу помогите
Var n, a, s, m, c: longint;
k, d, b1, b2: byte;

procedure stepen(p: integer; var s: longint);
var i: integer;
begin
s:= 1;
For i:= 1 to p do
s:= s*10;
end;

procedure kolvo(n: longint; var k: byte);
begin
k:= 0;
While n<>0 do begin
n:= n Div 10;
k:= k+1;
end;
end;

begin
read(n);
a:= n;
kolvo(n,k);
stepen(k-1,s);
d:= 0;
m:=0;
While a<>0 do
begin
b1:= a Div s;
b2:= a Mod 10;
if b1=b2 then d:= d+1;
a:= (a mod s) Div 10;
s:= s Div 100;
end;
stepen(k-1,s);
While n<>0 do begin
c:= n mod 10;
m:= m+c*s;
n:= n div 10;
s:= s div 10;
end;
case k mod 2 of
1: if d= ((k Div 2)+1) then Write(true) else writeln(m);
0: if d = (k Div 2) then Write(true) else write(m);
end;
end.
Inspektor
В длинном коде никто не будет копаться.
1) Вы написали функцию для проверки числа "на полиндром".
2) Вы написали функцию для "переворота" числа?
kaa
(я знаю с++ н может помогу)
тут надо так!

строками

взять адресс 2 элемента строки и переставить на 1 место!)
потом этот адресс разименовать !
все это дело будет происходить в цыкле!)

(больше не чем помочь не могу)

Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.
Русская версия Invision Power Board © 2001-2025 Invision Power Services, Inc.