Cześć, napisałem program, który ma liczyć wysokość piramidy, jednak ma on usterkę. Mam dostęp do danych wyjściowych dla niektórych wartości danych wejściowych, co pozwala mi sprawdzić czy program działa poprawnie, jak się okazuje jestem bardzo blisko poprawnego wyniku, ale nie tego szukam, chcę ,aby działał on w pełni poprawnie. Poniżej polecenie, oraz kod, który napisałem(z błędem w algorytmie),jak i przykładowe dane które powinny być zwracane(na samym dole postu) . Proszę o pomoc.
Polecenie:
Piramida jest ułożona w stos zgodnie z jedną prostą zasadą: każda dolna warstwa zawiera jeden blok więcej niż jedna warstwa wyżej.
Twoim zadaniem jest napisanie programu, który odczytuje liczbę bloków, którymi dysponujemy i podaje wysokość piramidy (liczbę warstw), którą można osiągnąć za pomocą tych bloków.
Uwaga: wysokość mierzona jest liczbą w pełni ukończonych warstw - jeśli nie ma wystarczającej liczby bloków i nie da się ukończyć kolejnej warstwy, należy zakończyć pracę programu i podać liczbę pełnych warstw.
blokow = int(input("Wprowadź liczbę bloków: "))
wysokosc = 0
w_warstwie = 1
while w_warstwie <= blokow:
blokow = blokow - w_warstwie
w_warstwie += 1
if blokow < w_warstwie:
break
wysokosc += 1
print("Wysokość piramidy wynosi:", wysokosc)
Przykładowe dane wejściowe oraz poprawne wyniki:
Bloków 1000 , wysokość(warstwy) z 1000 bloków = 44; Bloków 20, wysokość(warstwy) z 20 bloków = 5;