1684 - Numere Piramidale: Diferență între versiuni
De la Universitas MediaWiki
Linia 25: | Linia 25: | ||
import math | import math | ||
def | def validate_input(n): | ||
return int | if not n.isdigit(): | ||
return False | |||
n = int(n) | |||
if n < 1 or n > 400: | |||
return False | |||
return True | |||
n = int( | def compute_pyramid_numbers(n): | ||
pyramid_numbers = [] | |||
for i in range(1, n+ 1): | |||
pyramid_number = sum([j ** 2 for j in range(1, i + 1)]) | |||
pyramid_numbers.append(pyramid_number) | |||
return pyramid_numbers | |||
def main(): | |||
n = input("Introduceti numarul de numere piramidale: ") | |||
while not validate_input(n): | |||
n = input("Input invalid! Introduceti numarul de numere piramidale: ") | |||
pyramid_numbers = compute_pyramid_numbers(int(n)) | |||
print("Primele", n, "numere piramidale sunt:", " ".join(str(p) for p in pyramid_numbers)) | |||
if __name__ == '__main__': | |||
main() | |||
</syntaxhighlight> | </syntaxhighlight> |
Versiunea de la data 24 martie 2023 15:31
Cerința
Amicul nostru, Zoli, a învățat la scoală despre pătrate perfecte și numere piramidale. Al n-lea număr piramidal înseamnă suma primelor n pătrate perfecte, începând de la 1. Ajutați-l pe Zoli sa afle primele n numere piramidale.
Date de intrare
Programul citește de la tastatură numărul n.
Date de ieșire
Programul va afișa pe ecran primele n numere piramidale, în ordine crescătoare, separate prin câte un spațiu.
Restricții și precizări
1 ≤ n ≤ 400
Exemplu:
Intrare 3
Ieșire 1 5 14
Explicație
Primele 3 numere piramidale sunt 1, 5</span si 14</span.
Rezolvare
import math
def validate_input(n):
if not n.isdigit():
return False
n = int(n)
if n < 1 or n > 400:
return False
return True
def compute_pyramid_numbers(n):
pyramid_numbers = []
for i in range(1, n+ 1):
pyramid_number = sum([j ** 2 for j in range(1, i + 1)])
pyramid_numbers.append(pyramid_number)
return pyramid_numbers
def main():
n = input("Introduceti numarul de numere piramidale: ")
while not validate_input(n):
n = input("Input invalid! Introduceti numarul de numere piramidale: ")
pyramid_numbers = compute_pyramid_numbers(int(n))
print("Primele", n, "numere piramidale sunt:", " ".join(str(p) for p in pyramid_numbers))
if __name__ == '__main__':
main()