Witam,
Mam napisać program, który w zależności od zmiennej będzie wyświetlał tyle poziomów.
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
itd
Dodam, że dotychczas w szkole korzystaliśmy z for,while,if.
Napisz:
- czego nie wiesz
- co od nas oczekujesz
- co już napisałeś
Temat jest dosyć prosty, ponieważ jak już sam zauważyłeś jest to Trójkąt Pascala. Tego typu twory matematyczne mają to do siebie, że każdy element można wyrazić jakimś równaniem. W tym wypadku możemy skorzystać z dwumianu Newtona:
Dla przykładu: w wierszu 4 na miejscu 2 stoi 6, co wynika z podstawienia do wzoru:
Jedyne, co Ci pozostało, to zastosować ten wzór w pętli for, tak żeby wygenerować odpowiednią liczbę wierszy n
i voilà. Podpowiem Ci jeszcze, że PHP ma funkcję, która obliczy Ci silnie. Oczywiście możesz też zrobić to sam używając pętlę for, co nawet jest wskazane, bo wtedy sobie poćwiczysz pętle.
Warto dodać że przy użyciu samego dodawania można trochę dłużej liczyć elementy niż przy silni bez groźby przepełnienia wartości (jeśli nie używamy gmp).
A przy użyciu mnożenia/dzielenia można obliczyć konkretny wiersz bez poprzednich:
https://en.wikipedia.org/wiki/Pascal%27s_triangle#Calculating_a_row_or_diagonal_by_itself