Пожалуйста помогите решить задачу.
Дано число 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.
В длинном коде никто не будет копаться.
1) Вы написали функцию для проверки числа "на полиндром".
2) Вы написали функцию для "переворота" числа?
(я знаю с++ н может помогу)
тут надо так!
строками
взять адресс 2 элемента строки и переставить на 1 место!)
потом этот адресс разименовать !
все это дело будет происходить в цыкле!)
(больше не чем помочь не могу)
Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)