Trójkąt Pascala

Zadanie 8 z 9 · rozdział 8Trudność: 2 z 3pętle zagnieżdżonekombinatoryka

Treść zadania

Wczytaj liczbę naturalną n i wypisz n pierwszych wierszy trójkąta Pascala.

Każdy wiersz zaczyna się i kończy liczbą 1, a każda liczba w środku wiersza jest sumą dwóch liczb stojących nad nią w poprzednim wierszu:

1
1 1
1 2 1
1 3 3 1

Dane wejściowe

  • 1. linia: n — liczba naturalna (n ≥ 1)

Dane wyjściowe

n linii; w i-tej linii jest i liczb oddzielonych pojedynczą spacją.

Ograniczenia

  • 1 ≤ n ≤ 30

Uwagi

  • Liczby w wierszu numer $r$ (licząc od $0$) to symbole Newtona $\binom{r}{0}, \binom{r}{1}, \ldots, \binom{r}{r}$. Kolejną liczbę w wierszu można obliczyć z poprzedniej: $\binom{r}{k+1} = \binom{r}{k} \cdot \frac{r - k}{k + 1}$ — wtedy nie potrzebujesz zapamiętywać poprzedniego wiersza.

Przykład

Wejście
3
Wyjście
1
1 1
1 2 1
Zasady obowiązujące w rozdziale 8

Zadania w tym rozdziale ćwiczą pętle zagnieżdżone: pętla zewnętrzna przechodzi po wierszach, a wewnętrzna po kolumnach. W ten sposób rysujemy figury ze znaków, budujemy tabele liczb i przeszukujemy kolejne liczby.

Konwencje wspólne:

  • Każde zadanie to osobny program: czyta standardowe wejście i wypisuje wynik na standardowe wyjście.
  • Program nie wypisuje komunikatów typu „Podaj n:”. Tekst podany w input("…") jest ignorowany przez sprawdzarkę.
  • Każdy wiersz figury lub tabeli wypisz w osobnej linii.
  • W rysunkach spacje na początku i w środku wiersza są istotne. Spacje na końcu wiersza są ignorowane przez sprawdzarkę, więc nie musisz ich wypisywać.

Zadanie pochodzi z otwartego zbioru Nauka-Programowania (z rozwiązaniami wzorcowymi). Zgłoś błąd w treści lub testach.

Python uruchomi się w przeglądarce przy pierwszym teście.

Kod zapisuje się automatycznie w tej przeglądarce. Tab wstawia wcięcie; aby opuścić edytor klawiaturą, naciśnij Esc, a potem Tab.

Testy

Program dostaje „Wejście” przez input() i musi wypisać „Oczekiwane wyjście”. Liczby porównywane są z tolerancją 0,01, a tekst podany w input("…") nie jest sprawdzany.

Test 1

Nie uruchomiono
Wejście
1
Oczekiwane wyjście
1

Test 2

Nie uruchomiono
Wejście
2
Oczekiwane wyjście
1
1 1

Test 3

Nie uruchomiono
Wejście
5
Oczekiwane wyjście
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1

Test 4

Nie uruchomiono
Wejście
7
Oczekiwane wyjście
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
Uruchom z własnymi danymi