1569 - Scara Numerelor

De la Universitas MediaWiki
Versiunea pentru tipărire nu mai este suportată și poate avea erori de randare. Vă rugăm să vă actualizați bookmarkurile browserului și să folosiți funcția implicită de tipărire a browserului.

Cerința

Se citește un număr natural n</span.. Să se afișeze o figură similară cu cea din exemplu.

Date de intrare

Programul citește de la tastatură numărul n.

Date de ieșire

Dacă datele sunt introduse corect, pe ecran se va afișa: "Date de intrare valide.", apoi programul va afișa figura, similar cu exemplul. În cazul în care datele nu respectă restricțiile, se va afișa pe ecran: "Date de intrare invalide".

Restricții și precizări

1 ≤ n ≤ 9

Exemplu:

Intrare

3

Ieșire

Date de intrare valide
1
22
22
333
333
333

Explicație

Cifra 1 s-a afisat o singura data, pe un singur rand. Cifra 2 s-a afista de 2 ori, pe 2 randuri. Cifra 3 s-a afisat de 3 ori, pe 3 randuri.

Rezolvare

def validare_date(n):
    """
    Verifică dacă numărul n este între 1 și 9.
    """
    if 1 <= n <= 9:
        return True
    else:
        print("Numărul trebuie să fie între 1 și 9.")
        return False

def print_figure(n):
    """
    Afișează cifrele de la 1 la n pe câte n rânduri.
    """
    for i in range(1, n + 1):
        for j in range(1, i + 1):
            for k in range(1, i + 1):
                print(i, end='')
            print()


if __name__ == "__main__":
    n = int(input("Introduceți un număr natural n: "))
    if validare_date(n):
        print("Date de intrare valide")
        print_figure(n)
    else:
        print("Date de intrare invalide")

Explicatie cod:

Funcția validare_date(n) verifică dacă valoarea n este un număr valid pentru a rezolva problema dată. Verifică dacă n se află în intervalul [1, 9]. Dacă este în intervalul valid, funcția returnează True. În caz contrar, se afișează un mesaj de eroare și funcția returnează False. Funcția print_figure(n) rezolvă problema și afișează cifrele de la 1 la n într-un model specific. Funcția utilizează trei bucle for pentru a controla afișarea în modelul dorit. Cu fiecare iterație, se afișează rândul respectiv de cifre. La fiecare iterație a celei de-a doua bucle for, se afișează valoarea cifrei i de i ori, iar la fiecare iterație a celei de-a treia bucle for, se afișează numărul i pe un rând nou. În blocul if __name__ == "__main__":, se citește valoarea n de la utilizator utilizând funcția input() și se verifică dacă valoarea introdusă este validă utilizând funcția validare_date(n). Dacă nu este validă, se afișează un mesaj de eroare și se cere introducerea unei valori valide. Dacă valoarea introdusă este validă, se apelează funcția print_figure(n) pentru a rezolva problema și a afișa cifrele în modelul specific.