powtórzenia wyników

0

Witam,
Mam do stworzenia program na zaliczenie (dlatego nie chcę wstawiać tu całego kodu), ale mam problem z otrzymanymi wynikami. Otóż chodzi o to, że program ma generować wszystkie liczby zaprzyjaźnione z podanego przedziału.

I teraz przykład: gdy przedział jest od 1 do 500 generuje mi jedyną taką parę liczb zaprzyjaźnionych, ale zapisuje ją dwukrotnie - tzn. wynik wygląda tak:

liczby zaprzyjaźnione to
284 i 220
220 i 284

Czy da się w jakiś prosty sposób sprawić, by wyniki się w ten sposób nie powtarzały? A może z doświadczenia potraficie powiedzieć (to akurat do studentów) czy wgl wykładowcy zwracają uwagę na te powtórzenia czy się nie bawić i pisać kolejny programik?

0

znalezioną drugą liczbę (większą lub mniejszą, w zależności od kierunku pętli) dodawaj do tablicy, a przed każdym pobraniem kolejnej liczby do sprawdzenia zobacz, czy nie figuruje ona w tablicy.

0

Moim zdaniem można zrobić: if(a<b) wypisz(a, b) (a, b - kolejne liczby).

0

Jeżeli szukasz 2 liczb z danego przedziału, które spełniają jakiś warunek i nie chcesz wypisywać drugi raz tej samej pary liczb, ale zamienionych miejscami, to najlepiej odpowiednio dobrać przebieg pętli od ... do.

Przykład z powtórzeniami (niepożądany)

for i:= 1 to Zakres do
  for j:= 1 to Zakres do

Przykład bez powtórzeń (mogą wystąpić 2 takie same liczby)

for i:= 1 to Zakres do
  for j:= i to Zakres do

Przykład bez powtórzeń (tylko 2 różne liczby)

for i:= 1 to Zakres - 1 do
  for j:= i + 1 to Zakres do

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