ленивый пользователь
Сообщения: 62
Регистрация: 27.07.2009 Откуда: Fishburg |
27 декабря 2009, 16:12
| | |
#302 (ПС)
| -Цитата от Hammer -Цитата от Baddogg -Цитата от Hammer
Полным перебором решил.
Максимальное кол-во элеменентов взял за 10. Код: var
i, j, x: integer;
mas: array[1..10] of integer;
function Degree(a,b,c:integer):longint;
var r:longint;
begin
r:=1;
while b>0 do begin
r:=r*a;
b:=b-1;
if r > c then
break;
end;
Degree:=r;
end;
begin
writeln('Введите числа (10 шт):');
for i:=1 to 10 do
read(mas[i]);
for i:=1 to 10 do
for j:=1 to maxint do
begin
x:= Degree(j, 2, mas[i]);
if mas[i] = x then
write(mas[i], ' ');
end;
readln;
end.
все бы хорошо, да только N (макс кол-во эл-тов) с клавы нужно ввести. пробовал массив сделать от 1 до N пишет ошибку. чет не знаю в чем дело. и еще че значит break?) Держи. Код: var
i, j, n, x: integer;
mas: array[1..100] of integer;
function Degree(a,b,c:integer):longint;
var r:longint;
begin
r:=1;
while b>0 do begin
r:=r*a;
b:=b-1;
if r > c then
break;
end;
Degree:=r;
end;
begin
writeln('Ввелите кол-во элементов (максимум 100):');
readln(n);
writeln('Введите числа');
for i:=1 to n do
read(mas[i]);
for i:=1 to n do
for j:=1 to maxint do
begin
x:= Degree(j, 2, mas[i]);
if mas[i] = x then
write(mas[i], ' ');
end;
readln;
end.
Проверяй, а то я не компилировал.
break - остановка цикла. во спс) все работает =) |
|
| |