n-ta liczba prostokątna ma wartość n·(n + 1). Istnieje możliwość przedstawienia jej w sposób geometryczny przy pomocy prostokąta n × n + 1.
Liczby prostokątne tworzą następujący ciąg: 0, 2, 6, 12, 20, 30, 42, 56, 72, 90
Wartość 0 jest wyrazem a0. W przypadku definiowana ciągu dla liczb naturalnych pierwszym wyrazem jest a1 = 2.
W celu wyliczenia n-tego wyrazu wystarczy, aby funkcja zwracała wyliczoną wartość:
Przypuśćmy, że mnożenie jest bardzo kosztowną operacją, która kosztuje nas tyle samo co wartość liczonego iloczynu. Wtedy w celu wypisania kolejnych liczb Porstokątnych należałoby znaleźć sposób, który pozwoli na uniknięcie mnożenia. Spróbujmy zapisać różnicę dwóch kolejnych liczb an i an + 1.
an + 1 - an = (n + 1)(n + 2) - n(n + 1) = (n + 1)(n + 2 - n) = 2·(n + 1) = 2n + 2 = n + n + 2
Na podstawie tego wzoru w sposób iteracyjny można wypisać kolejne liczby prostokątne:
W celu wypisania kilku kolejnych liczb prostokątnych można skorzystać z poniższej funkcji main():
Napisz funkcję wypiszLiczbyProstokatne(), która będzie przyjmowała dwa argumenty: liczbę a, która określi wartość wyrazu a1 oraz k - ile kolejnych liczb ma zostać wypisanych.
Przykładowo dla a = 3 i k = 5 program wypisze: