Strona główna » Algorytmy » Artykuły » Trójkąt Floyda
 

Trójkąt Floyda

Trójkąt

Trójkąt Floyda to trójkąt, który powstaje poprzez wypisanie kolejnych liczb naturalnych w kolejnych wierszach z zastrzeżeniem, że w i-tym wierszu może być maksymalnie i elementów. Oznacza to, że w pierszym wierszu jest tylko wartość 1, a w kolejnym 2, 3 itd. Poniżej został przedstawiony tójkąt Floyda dla sześciu wierszy:

  1. 1
  2. 2   3
  3. 4   5   6
  4. 7   8   9   10
  5. 11  12  13  14  15
  6. 16  17  18  19  20  21

Interesujący jest fakt, że liczby znajdujące się w pierwszej kolumnie opisują na ile części można maksymalnie podzielić np. pizzę w i ruchach.

Implementacja

Do narysowania powyższego trójkąta można zastosować algorytm składający się z dwóch pętli. Oto przykładowa funkcja WypiszTrojkatFloyd(). Jako argument przyjmuje jeden argument k czyli ile wierszy ma zostać wypisanych.

C++C#
Python
  1. def WypiszTrojkatFloyd(k):
  2.   licznik = 1
  3.   for i in range(1, k):
  4.     for j in range(i):
  5.       print(licznik, end="\t")
  6.       licznik += 1
  7.     print()

Pierwsza pętla ma za zadanie przechodzić po kolejnych wierszach. Z kolei druga pętla wypisuje i wiersz. Po wypisaniu elementu licznik jest zwiększany o 1, aby następna wypisa liczba była kolejna liczbą naturalną. Pomiędzy elementami wiersza wypisany jest tabulator, aby wyrównać kolejne elementy w kolumnach.

Testowanie funkcji

W celu przetestowania powyższej funkcji można skorzystać z poniższego fragmentu kodu, który wczytuje ile wierszy trójkąta ma zostać wypisanych.

C++C#
Python
  1. k = int(input("Ile rzędów wypisać?\n k = "))
  2. WypiszTrojkatFloyd(k)

Zadania

Zadanie 1

Napisz funkcję WypiszTrojkatFloyd(), która użyje dokładnie jednej pętli. Nie wolno wykorzystać rekurencji. Przetestuj napisany program.