0050 - Expresie

De la Universitas MediaWiki
Versiunea din 18 martie 2023 13:03, autor: Dragos1234 (discuție | contribuții) (Pagină nouă: == Cerinţa == 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 == Programul citește de la tastatură numărul '''n'''. == Date de ieșire == Programul afișează pe prima linie a ecranului mesajul Rezultatul este S, unde S reprezintă suma calculată, în caz contrar programul va afișa "Datele introduse nu corespund cerintelor". == Restricţii şi precizări == * 0 < '''n''' ⩽ 15 == E...)
(dif) ← Versiunea anterioară | Versiunea curentă (dif) | Versiunea următoare → (dif)

Cerinţa

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

Programul citește de la tastatură numărul n.

Date de ieșire

Programul afișează pe prima linie a ecranului mesajul Rezultatul este S, unde S reprezintă suma calculată, în caz contrar programul va afișa "Datele introduse nu corespund cerintelor".

Restricţii şi precizări

  • 0 < n ⩽ 15

Exemplul 1

Intrare
4
Ieșire
Rezultatul este 33


Exemplul 2

Intrare
0
Ieșire
Datele introduse nu corespund cerințelor.


Exemplul 3

Intrare
6
Ieșire
Rezultatul este 873


Rezolvare

#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("Rezultatul este", rezultat)