0351 - Piramida
Cerinţa:
Se citește numărul natural n. Să se afișeze următoarea piramidă de numere: 1 1 2 1 2 3 ....... 1 2 3 ... n
Date de intrare:
Programul citește de la tastatură numărul n.
Date de ieşire:
Programul afișează pe ecran numărul 1, pe a doua linie numerele 1 2, pe a treia linie numerele 1 2 3, etc, pe a n-a linie numerele 1 2 3 ... n. Pe fiecare linie numerele sunt separate prin exact un spațiu.
Restricţii şi precizări:
1 ≤ n ≤ 20
Exemplu:
Date de intrare 4
Date de ieșire 1 1 2 1 2 3 1 2 3 4
Rezolvare:
<syntaxhighlight lang="python" line="1"> def validate_input(n):
if not n.isdigit(): return False n = int(n) if n < 1 or n > 20: return False return True
def generate_pyramid(n):
pyramid = [] for i in range(1, n + 1): row = [] for j in range(1, i + 1): row.append(j) pyramid.append(row) return pyramid
def print_pyramid(pyramid):
for row in pyramid: row_str = " ".join([str(num) for num in row]) print(row_str)
def main():
n = input("Introduceti n: ") while not validate_input(n): print("Va rugam introduceti un numar natural intre 1 si 20.") n = input("Introduceti n: ") n = int(n) pyramid = generate_pyramid(n) print_pyramid(pyramid)
if __name__ == '__main__':
main()
</syntaxhighlight>