0050 - Expresie

From Bitnami MediaWiki

Sursa: [1]

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 ș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

  • 0 < n ⩽ 15

Exemplul 1

Intrare
4
Ieșire
Datele introduse corespund cerințelor
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

<syntaxhighlight lang="python" line>

  1. 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)

</syntaxhighlight>