0049 - Factorial: Diferență între versiuni

De la Universitas MediaWiki
 
(Nu s-au afișat 8 versiuni intermediare efectuate de alți 2 utilizatori)
Linia 5: Linia 5:
Programul citește de la tastatură numărul '''n'''.
Programul citește de la tastatură numărul '''n'''.
== Date de iesire ==
== Date de iesire ==
Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele sunt introduse corect.", iar pe rând nou rezultatul lui n!. În caz contrar, se va afișa pe ecran: "Datele nu corespund restricțiilor impuse.".
Dacă datele sunt introduse corect, în consolă se va afișa: "Datele introduse corespund cerintelor", iar pe rând nou rezultatul lui '''n!'''. În caz contrar, se va afișa pe ecran: "Datele introduse nu corespund cerintelor".


== Restricţii şi precizări ==
== Restricţii şi precizări ==
Linia 15: Linia 15:
: 4
: 4
; Ieșire
; Ieșire
: Datele introduse corespund cerintelor.
: 24
: 24
=== Exemplul 2 ===
=== Exemplul 2 ===
; Intrare
; Intrare
: 0
: 0
; Ieșire
; Ieșire
: Datele introduse corespund cerintelor.
: 1
: 1
=== Exemplul 3 ===
=== Exemplul 3 ===
; Intrare
; Intrare
: 16
: 16
; Ieșire
; Ieșire
: Datele nu corespund restricțiilor impuse.
: Datele introduse nu corespund cerintelor.
 
=== Rezolvare ===
=== Rezolvare ===
<syntaxhighlight lang="python" line>
<syntaxhighlight lang="python" line>
Linia 32: Linia 37:
#0049
#0049
import math
import math
def functie_factorial(n):
 
 
def validare(n):
     if(n < 0 or n > 15):
     if(n < 0 or n > 15):
         print("Datele introduse nu corespund cerintelor.")
         print("Datele introduse nu corespund cerintelor.")
        return False
    else:
        return True


    elif(n == 0):
        print("Datele introduse corespund cerintelor.")
        print(1)


     else:
def functie_factorial(n):
     if validare(n):
         print("Datele introduse corespund cerintelor.")
         print("Datele introduse corespund cerintelor.")
         print(math.factorial(n))
         print(math.factorial(n))
Linia 46: Linia 54:


if __name__ == "__main__":
if __name__ == "__main__":
     numar = int(input())
     numar = int(input("Introduceti numar: "))
     functie_factorial(numar)
     functie_factorial(numar)


Linia 53: Linia 61:


== Explicatie rezolvare ==
== Explicatie rezolvare ==
Acest program calculează factorialul unui număr dat de utilizator prin intermediul funcției "functie_factorial(n)". În primul rând, programul importă modulul "math" pentru a putea utiliza funcția "factorial()" pentru a calcula factorialul numărului dat. Funcția "functie_factorial(n)" primește un argument "n" și verifică dacă acesta este mai mic decât 0 sau mai mare decât 15. În caz afirmativ, se afișează un mesaj de eroare. Dacă numărul este 0, se afișează un mesaj de confirmare că datele introduse sunt valabile, iar factorialul este afișat ca fiind 1. Dacă numărul este mai mare decât 0 și mai mic sau egal cu 15, se afișează un mesaj de confirmare că datele introduse sunt valabile, iar factorialul este calculat și afișat utilizând funcția "math.factorial(n)". În programul principal, utilizatorul este întâi rugat să introducă un număr, care este apoi transmis funcției "functie_factorial(n)" pentru a fi calculat factorialul.
Programul are o funcție "validare(n)", care primește un argument n reprezentând un număr întreg și verifică dacă acesta se încadrează în intervalul [0, 15]. Dacă numărul nu se încadrează în acest interval, se afișează un mesaj de eroare, iar funcția returnează valoarea booleană "False". În caz contrar, funcția returnează valoarea booleană "True", semnificând că numărul este valid și se poate calcula factorialul acestuia.
 
Funcția "functie_factorial(n)" primește un argument n reprezentând numărul pentru care se dorește calcularea factorialului. În primul rând, aceasta verifică dacă numărul este valid, apelând funcția "validare(n)". Dacă numărul este valid, se afișează un mesaj de confirmare și se calculează factorialul acestuia prin intermediul funcției "math.factorial()". În caz contrar, nu se calculează factorialul și se afișează mesajul de eroare din funcția "validare(n)".
 
În funcția "main", programul primește un număr întreg de la utilizator prin intermediul funcției "input()", convertindu-l apoi la tipul întreg utilizând funcția "int()". Programul apoi apelează funcția "functie_factorial(n)" cu argumentul numărul introdus de utilizator, astfel încât să se calculeze factorialul acestuia sau să se afișeze mesajul de eroare în cazul în care numărul nu este valid.

Versiunea curentă din 30 aprilie 2023 17:34

Sursa: [1]

Cerinţa

Să se scrie un program care citește numărul natural n și determină valoarea lui n!.

Date de intrare

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

Date de iesire

Dacă datele sunt introduse corect, în consolă se va afișa: "Datele introduse corespund cerintelor", iar pe rând nou rezultatul lui n!. În caz contrar, se va afișa pe ecran: "Datele introduse nu corespund cerintelor".

Restricţii şi precizări

  • 0 ⩽ n ⩽ 15
  • prin definiție, 0! = 1

Exemplu

Exemplul 1

Intrare
4
Ieșire
Datele introduse corespund cerintelor.
24

Exemplul 2

Intrare
0
Ieșire
Datele introduse corespund cerintelor.
1

Exemplul 3

Intrare
16
Ieșire
Datele introduse nu corespund cerintelor.

Rezolvare

#0049
import math


def validare(n):
    if(n < 0 or n > 15):
        print("Datele introduse nu corespund cerintelor.")
        return False
    else:
        return True


def functie_factorial(n):
    if validare(n):
        print("Datele introduse corespund cerintelor.")
        print(math.factorial(n))


if __name__ == "__main__":
    numar = int(input("Introduceti numar: "))
    functie_factorial(numar)

Explicatie rezolvare

Programul are o funcție "validare(n)", care primește un argument n reprezentând un număr întreg și verifică dacă acesta se încadrează în intervalul [0, 15]. Dacă numărul nu se încadrează în acest interval, se afișează un mesaj de eroare, iar funcția returnează valoarea booleană "False". În caz contrar, funcția returnează valoarea booleană "True", semnificând că numărul este valid și se poate calcula factorialul acestuia.

Funcția "functie_factorial(n)" primește un argument n reprezentând numărul pentru care se dorește calcularea factorialului. În primul rând, aceasta verifică dacă numărul este valid, apelând funcția "validare(n)". Dacă numărul este valid, se afișează un mesaj de confirmare și se calculează factorialul acestuia prin intermediul funcției "math.factorial()". În caz contrar, nu se calculează factorialul și se afișează mesajul de eroare din funcția "validare(n)".

În funcția "main", programul primește un număr întreg de la utilizator prin intermediul funcției "input()", convertindu-l apoi la tipul întreg utilizând funcția "int()". Programul apoi apelează funcția "functie_factorial(n)" cu argumentul numărul introdus de utilizator, astfel încât să se calculeze factorialul acestuia sau să se afișeze mesajul de eroare în cazul în care numărul nu este valid.