Zadanie z matury

0

Witam mam problem z częścią zadania z matury
Dla danych z każdego wiersza w tabeli oblicz największe pole powierzchni prostokąta, które
nie jest podzielne przez p, a długości sąsiednich boków tego prostokąta są różne (nie może on
być kwadratem) i należą do zbioru A. Zapisz pole tego prostokąta w kolumnie S.
Jeżeli taki prostokąt nie istnieje, jako wynik podaj liczbę 0 (zero).

7, 5, 11, 33 
15, 12, 10, 6, 5, 1 
6, 28, 7, 12, 10, 14, 5, 9, 4, 8, 18 
4, 34, 16, 8, 6, 22, 14, 12, 2, 7 

moim problemem jest to aby napisać program który pomnoży każdą liczbę przez wszystkie inne w podanym wierszu ale bez powtarzania. Np jak w wierszu pierwszym: 7*5, 7*11, 7*33, 5*11, 5*33, 11*33.
Liczenie ręczne każdego jest problematyczne. Dzięki za pomoc

1
Aronn napisał(a):

moim problemem jest to aby napisać program który pomnoży każdą liczbę przez wszystkie inne w podanym wierszu ale bez powtarzania. Np jak w wierszu pierwszym: 7*5, 7*11, 7*33, 5*11, 5*33, 11*33.

W pseudokodzie:

for(int left = 0; left < count - 1; left++)
{
  for(int right = left + 1; right < count; right++)
  {
    int result = tab[left] * tab[right];
    // tu używasz result do dalszych operacji
  }
}

left daje indeks pierwszej liczby, right drugiej (zawsze jest większe od left, więc nie będzie duplikatów), count to liczba elementów ciągu, a tab to hipotetyczna tablica z wejściowym ciągiem liczb.

0

Wielkie dzięki w sumie to było bardzo proste ale jakoś nie mogłem do tego dojść

1 użytkowników online, w tym zalogowanych: 0, gości: 1