Показать сообщение отдельно
Baddogg
ленивый пользователь
Аватар для Baddogg
Сообщения: 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 - остановка цикла.
во спс) все работает =)

offline
Ответить с цитированием