1684 - Numere Piramidale: Difference between revisions
Paul Ungur (talk | contribs) No edit summary |
Paul Ungur (talk | contribs) No edit summary |
||
Line 6: | Line 6: | ||
==Date de ieșire== | ==Date de ieșire== | ||
Dacă datele sunt introduse corect, pe ecran se va afișa: '''"Date de intrare valide."''', apoi programul va afișa pe ecran primele <span style="color: red;"> n</span> numere piramidale, în ordine crescătoare, separate prin câte un spațiu. În cazul în care datele nu respectă restricțiile, se va afișa pe ecran: '''"Date de intrare invalide".''' | |||
==Restricții și precizări== | ==Restricții și precizări== | ||
Line 13: | Line 13: | ||
==Exemplu:== | ==Exemplu:== | ||
Intrare | Intrare | ||
3 | : 3 | ||
Ieșire | Ieșire | ||
1 5 14 | : Date de intrare valide | ||
: 1 5 14 | |||
==Explicație== | ==Explicație== |
Latest revision as of 18:12, 29 June 2023
Cerința[edit | edit source]
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[edit | edit source]
Programul citește de la tastatură numărul n.
Date de ieșire[edit | edit source]
Dacă datele sunt introduse corect, pe ecran se va afișa: "Date de intrare valide.", apoi programul va afișa pe ecran primele n numere piramidale, în ordine crescătoare, separate prin câte un spațiu. În cazul în care datele nu respectă restricțiile, se va afișa pe ecran: "Date de intrare invalide".
Restricții și precizări[edit | edit source]
1 ≤ n ≤ 400
Exemplu:[edit | edit source]
Intrare
- 3
Ieșire
- Date de intrare valide
- 1 5 14
Explicație[edit | edit source]
Primele 3 numere piramidale sunt 1, 5 si 14.
Rezolvare[edit | edit source]
<syntaxhighlight lang="python" line="1"> def validare_date(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) print("Primele", n, "numere piramidale sunt:", " ".join(str(p) for p in pyramid_numbers))
if __name__ == '__main__':
n = input("Introduceti numarul de numere piramidale: ") while not validare_date(n): n = input("Input invalid! Introduceti numarul de numere piramidale: ") if validare_date(n): print("Date de intrare valide") compute_pyramid_numbers(int(n))
</syntaxhighlight>
Explicatie cod:[edit | edit source]
Funcția validare_date(n) verifică dacă valoarea n este un număr valid pentru a calcula numere piramidale. Verifică dacă n este un șir de caractere numeric și apoi convertește n la tipul int. Verifică apoi dacă n se încadrează în intervalul [1, 400]. Dacă nu se îndeplinesc aceste condiții, returnează False, altfel returnează True. Funcția compute_pyramid_numbers(n) calculează primele n numere piramidale. Folosește o buclă for pentru a itera de la 1 la n. Pentru fiecare valoare i, calculează numărul piramidal folosind formula pyramid_number = sum([j ** 2 for j in range(1, i + 1)]). Adaugă numărul piramidal calculat în lista pyramid_numbers. La final, afișează lista pyramid_numbers într-un format adecvat. În blocul if __name__ == '__main__':, se solicită utilizatorului să introducă numărul de numere piramidale pe care dorește să le calculeze. Se verifică dacă valoarea introdusă este validă utilizând funcția validare_date(n). Dacă nu este validă, utilizatorului i se cere să reintroducă un număr valid. Dacă valoarea introdusă este validă, se afișează mesajul "Date de intrare valide" și se apelează funcția compute_pyramid_numbers(int(n)) pentru a calcula și afișa numerele piramidale.