Удалить все повторяющиеся результаты массива - PascalABC.NET

Узнай цену своей работы

Формулировка задачи:

Промаялся уже очень долго, решил написать на форум. Необходимо, чтобы все повторяющиеся результаты массива (ac) удалялись. Вроде задача проста, а решить не могу.

Решение задачи: «Удалить все повторяющиеся результаты массива»

textual
Листинг программы
function SquareRoot(N : Integer) : Integer;
begin
  var R := 1;
  var Q := 1;
  var D := 1;
  while Q < N do
    begin
      R += 1;
      D += 2;
      Q += D;
    end;
  Result := N = Q ? R : 0;
end;
 
var
  U : array [1..1000, 0..2] of Integer;
  Usize : Integer := 0;
  
function Unical(a, b, c : Integer) : Boolean;
begin
  Result := False;
  for var i := 1 to Usize do
    if (U[i, 0] = a) and (U[i, 1] = b) and (U[i, 2] = c) then
      Exit;
  Usize += 1; U[Usize, 0] := a; U[Usize, 1] := b; U[Usize, 2] := c;
  Result := True;
end;
 
begin
  var aMax := ReadLnInteger('Максимальная длина первого катета a=');
  var bMax := ReadLnInteger('Максимальная длина второго катета b=');
  for var a := 1 to aMax do
    for var b := 1 to bMax do
      begin
        var c := SquareRoot(a*a + b*b);
        if c > 0 then
          if Unical(a, b, c) and Unical(b, a, c) then
            WriteLnFormat('{0}ВІ + {1}ВІ = {2}ВІ', a, b, c);
      end;
end.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.875 из 5
Похожие ответы