задачка на паскале
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
задачка на паскале - 2007-12-15 19:04:13.033333
|
|
|
gotoxardas
Сообщений: 842
Оценки: 0
Присоединился: 2007-05-25 08:15:21.840000
|
Вот решил порешать задачки на паскале. Начал с такой(когда то выкладывалась на хакере но без решения) Найти такое число которое бы при умножении на числа от 2 до 8 равнялось самому себе наоборот Например, 214365 х 3 = 563412 - тут пример приведен не верно а так что бы понять общай смысл что от проги требуется Вот я тут код писанул а он чет не фуричит. Через дебагер забарился гонять. Ошибки найти не могу. Помогите кто шарит! uses crt;
var
a,a1:array[1..10] of longint;
b,b1:array[1..10] of longint;
s:string;
i,j:longint;
m,n,n1,x,x1:longint;
k,k1,q,kr,i1:longint;
procedure invert;
begin
str(k,s);
for i1:=1 to length(s) do
begin
a[i1]:=k mod 10;
k:=k div 10;
end;
end;
procedure revert;
begin
for i1:=1 to length(s) do
begin
n:=length(s)-i1+1;
b[i1]:=a[n];
end;
end;
procedure invert1;
begin
str(k1,s);
for i1:=1 to length(s) do
begin
a1[i1]:=k1 mod 10;
k1:=k1 div 10;
end;
end;
begin
clrscr;
k1:=1;
repeat
x:=x+1;
k:=x;
kr:=x;
invert;
revert;
for i:=2 to 8 do
begin
k1:=kr*i;
invert1;
for j:=1 to length(s) do
begin
if b[j]=a1[j] then
m:=m+1 else
m:=0;
end;
end;
if m=length(s) then
begin
writeln(x,' ',k1);
q:=q+1;
end;
until q=1;
writeln;
writeln;
writeln(x);
repeat until keypressed;
end.
|
|
|
RE: задачка на паскале - 2007-12-15 20:17:51.263333
|
|
|
kreol
Сообщений: 823
Оценки: 0
Присоединился: 2007-03-08 03:13:06.876666
|
А не пробовал пользоваться локальными переменнами? Может и вопросы сразу исчезнут.
|
|
|
RE: задачка на паскале - 2007-12-15 20:33:32.746666
|
|
|
gotoxardas
Сообщений: 842
Оценки: 0
Присоединился: 2007-05-25 08:15:21.840000
|
все уже дописал все оказывается таких чисел не существует существует только числа при умножении на 9 Вот что осилил мой комп за 5 минут 1089 10989 109989 1099989 10891089 10999989 108901089 109999989
|
|
|
RE: задачка на паскале - 2007-12-15 20:41:35.406666
|
|
|
gotoxardas
Сообщений: 842
Оценки: 0
Присоединился: 2007-05-25 08:15:21.840000
|
вот сам код uses crt;
var
a,a1:array[1..10] of longint;
b,b1:array[1..10] of longint;
s:string;
i,j:longint;
m,n,n1,x,x1:longint;
k,k1,q,kr,i1:longint;
procedure invert;
begin
str(k,s);
for i1:=1 to length(s) do
begin
a[i1]:=k mod 10;
k:=k div 10;
end;
end;
procedure revert;
begin
for i1:=1 to length(s) do
begin
n:=length(s)-i1+1;
b[i1]:=a[n];
end;
end;
procedure invert1;
begin
str(k1,s);
for i1:=1 to length(s) do
begin
a1[i1]:=k1 mod 10;
k1:=k1 div 10;
end;
end;
begin
clrscr;
repeat
x:=x+1;
k:=x;
kr:=x;
str(x,s);
invert;
revert;
for i:=1 to 9 do
begin
k1:=kr*i;
invert1;
m:=0;
for j:=1 to length(s) do
begin
if b[j]=a1[j] then
m:=m+1 else
m:=0;
end;
end;
if m=length(s) then
begin
writeln(x,' ',k1);
q:=q+1;
end;
until q=5;
writeln;
writeln;
writeln(x);
repeat until keypressed;
end.
|
|
|
|
|