1393 - Desen Romb: Diferență între versiuni

De la Universitas MediaWiki
Fără descriere a modificării
Linia 30: Linia 30:
def validare(n):
def validare(n):
     if not isinstance(n, int) or n < 1 or n > 9:
     if not isinstance(n, int) or n < 1 or n > 9:
         raise ValueError("n trebuie sa fie un numar natural cu o cifra (1-9)")
         print("n trebuie sa fie un numar natural cu o cifra (1-9)")
        return False
    return True


def rezolvare(n):
def rezolvare(n):
     for i in range(1, n + 1, 2):
     for i in range(1, n + 1):
         print(" " * ((n - i) // 2), str(i) * i, " " * ((n - i) // 2), sep="")
         # pe linia i scriu n - i spatii
     for i in range(n - 2, 0, -2):
        for j in range(1, n - i + 1):
         print(" " * ((n - i) // 2), str(i) * i, " " * ((n - i) // 2), sep="")
            print(' ', end='')
 
        # mai scriu 2 * i - 1 valori de i
        for j in range(1, 2 * i):
            print(i, end='')
        print()
 
     for i in range(1, n):
        # scriem i spatii pe linia i
        for j in range(1, i + 1):
            print(' ', end='')
 
         for j in range(1, 2 * (n - i)):
            print(n - i, end='')
        print()


def main():
    n = int(input("Introduceti un numar natural cu o cifra: "))
    validare(n)
    rezolvare(n)


if __name__ == '__main__':
if __name__ == '__main__':
     main()
     n = int(input("Introduceti un numar natural cu o cifra: "))
    if validare(n):
        print("Date de intrare valide")
        rezolvare(n)


</syntaxhighlight>
</syntaxhighlight>

Versiunea de la data 26 aprilie 2023 16:00

Cerința

Se citește un număr natural n cu o cifră. Afișați pe ecran o figură sub forma de romb formata cu numerele naturale de la 1 la n, ca în exemplu.

Date de intrare

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

Date de ieșire

Programul va afișa pe ecran un romb ce conține numerele naturale de la 1 la n

Restricții și precizări

1≤n≤9

Exemplu:

Intrare 5

Ieșire

   1
  222
 33333
4444444

555555555

4444444
 33333
  222
   1

Rezolvare

def validare(n):
    if not isinstance(n, int) or n < 1 or n > 9:
        print("n trebuie sa fie un numar natural cu o cifra (1-9)")
        return False
    return True

def rezolvare(n):
    for i in range(1, n + 1):
        # pe linia i scriu n - i spatii
        for j in range(1, n - i + 1):
            print(' ', end='')

        # mai scriu 2 * i - 1 valori de i
        for j in range(1, 2 * i):
            print(i, end='')
        print()

    for i in range(1, n):
        # scriem i spatii pe linia i
        for j in range(1, i + 1):
            print(' ', end='')

        for j in range(1, 2 * (n - i)):
            print(n - i, end='')
        print()


if __name__ == '__main__':
    n = int(input("Introduceti un numar natural cu o cifra: "))
    if validare(n):
        print("Date de intrare valide")
        rezolvare(n)