0050 - Expresie: Difference between revisions
Nagy Lenard (talk | contribs) No edit summary |
Dragos1234 (talk | contribs) |
||
(2 intermediate revisions by the same user not shown) | |||
Line 68: | Line 68: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== Explicatie rezolvare == | |||
Acest program calculează suma 1 + 1*2 + 1*2*3 + ... + 1*2*...n, unde n este un număr întreg între 1 și 15. Funcția calculeaza_produs(k) calculează produsul 1*2*...*k, iar funcția calculeaza_suma(n) calculează suma produselor de la 1 la n. Funcția valideaza_n(n) validează datele de intrare, verificând dacă numărul este întreg și se încadrează în intervalul specificat. Dacă numărul introdus de utilizator nu respectă cerințele, se afișează un mesaj corespunzător și se cere un nou număr. |
Latest revision as of 13:04, 9 April 2023
Sursa: [1]
Cerinţa[edit | edit source]
Să se scrie un program care citește numărul natural n și determină suma S=1+1*2+1*2*3+...+1*2*...*n.
Date de intrare[edit | edit source]
Programul citește de la tastatură numărul n.
Date de ieșire[edit | edit source]
Programul afișează pe prima linie a ecranului mesajul Rezultatul este S și mesajul "Datele introduse corespund cerințelor", unde S reprezintă suma calculată, în caz contrar programul va afișa pe o linie noua mesajul "Datele introduse nu corespund cerintelor".
Restricţii şi precizări[edit | edit source]
- 0 < n ⩽ 15
Exemplul 1[edit | edit source]
- Intrare
- 4
- Ieșire
- Datele introduse corespund cerințelor
- Rezultatul este 33
Exemplul 2[edit | edit source]
- Intrare
- 0
- Ieșire
- Datele introduse nu corespund cerințelor.
Exemplul 3[edit | edit source]
- Intrare
- 6
- Ieșire
- Datele introduse corespund cerințelor.
- Rezultatul este 873
Rezolvare[edit | edit source]
<syntaxhighlight lang="python" line>
- 0050
def calculeaza_produs(k):
"""Calculează produsul 1*2*...*k.""" produs = 1 for i in range(1, k+1): produs *= i return produs
def calculeaza_suma(n):
"""Calculează suma 1 + 1*2 + 1*2*3 + ... + 1*2*...*n.""" suma = 0 for k in range(1, n+1): produs = calculeaza_produs(k) suma += produs return suma
def valideaza_n(n):
"""Verifică dacă n este un număr întreg între 1 și 15.""" if n < 1 or n > 15: return False return True
if __name__ == '__main__':
n = int(input("Introduceți numărul n: ")) while not valideaza_n(n): print("Datele introduse nu corespund cerintelor") n = int(input("Introduceți numărul n: "))
rezultat = calculeaza_suma(n) print("Datele introduse corespund cerintelor.") print("Rezultatul este", rezultat)
</syntaxhighlight>
Explicatie rezolvare[edit | edit source]
Acest program calculează suma 1 + 1*2 + 1*2*3 + ... + 1*2*...n, unde n este un număr întreg între 1 și 15. Funcția calculeaza_produs(k) calculează produsul 1*2*...*k, iar funcția calculeaza_suma(n) calculează suma produselor de la 1 la n. Funcția valideaza_n(n) validează datele de intrare, verificând dacă numărul este întreg și se încadrează în intervalul specificat. Dacă numărul introdus de utilizator nu respectă cerințele, se afișează un mesaj corespunzător și se cere un nou număr.