0002 - Suma N
Sursa: 0002 - Suma N
Cerinţa
Se dau n numere naturale nenule. Calculaţi suma celor n numere date.
Date de intrare
Programul citește de la tastatură numărul n, iar apoi n numere naturale, separate prin spaţii, reprezentând elementele vectorului.
Date de ieșire
Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele sunt introduse corect.", apoi se va afisa suma celor n numere pe urmatorul rand. În cazul în care datele nu respectă restricțiile, se va afișa pe ecran: "Datele nu corespund restricțiilor impuse.".
Restricţii şi precizări
0 &l; n &l; 1000
- elementele vectorului vor fi mai mici decât 1000
- vectorul nu va contine niciun element nul
Exemple
Exemplul 1
- Intrare
- 5
- 6 2 0 4 1
- Ieșire
- Datele sunt introduse corect.
- 13
Rezolvare
<syntaxhighlight lang="python" line>
- 0161
def calculeaza_suma(numere: list) -> int:
suma = 0 for numar in numere: suma += int(numar) return suma
def citeste_numere() -> list:
numere = input().split(' ') for numar in numere: if not numar.isdigit(): print('Datele nu corespund restricțiilor impuse.') return [] print('Datele sunt introduse corect.') return numere
def main():
n = int(input()) numere = citeste_numere() if numere: suma = calculeaza_suma(numere) print(suma)
if __name__ == "__main__":
main()
</syntaxhighlight>
Explicație rezolvare
Această soluție Python are următoarele caracteristici:
Utilizează trei funcții separate pentru a citi numerele, a calcula suma și a afișa rezultatul; Funcția citeste_numere citeste numerele de la intrare, le separă într-o listă și verifică dacă toate sunt numere întregi; Funcția calculeaza_suma primește lista de numere și calculează suma lor folosind un loop for; Funcția main primește numărul de numere și apelează citeste_numere pentru a citi numerele și a verifica dacă sunt valide; apoi calculează suma și o afișează dacă lista de numere este nevidă. Astfel, programul primește un număr n și o listă de n numere și returnează suma numerelor din listă, sau afișează un mesaj de eroare dacă datele de intrare nu sunt corecte.