0049 - Factorial: Difference between revisions
Dragos1234 (talk | contribs) No edit summary |
Dragos1234 (talk | contribs) |
||
(12 intermediate revisions by 2 users not shown) | |||
Line 5: | Line 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, î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 == | ||
* 0 ⩽ '''n''' ⩽ 15 | * 0 ⩽ '''n''' ⩽ 15 | ||
Line 14: | Line 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 | : Datele introduse nu corespund cerintelor. | ||
=== Rezolvare === | === Rezolvare === | ||
<syntaxhighlight lang="python" line> | |||
#0049 | |||
import math | import math | ||
def | |||
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 | |||
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)) | ||
Line 41: | Line 54: | ||
if __name__ == "__main__": | if __name__ == "__main__": | ||
numar = int(input()) | numar = int(input("Introduceti numar: ")) | ||
functie_factorial(numar) | functie_factorial(numar) | ||
</syntaxhighlight> | |||
== 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. |
Latest revision as of 17:34, 30 April 2023
Sursa: [1]
Cerinţa[edit | edit source]
Să se scrie un program care citește numărul natural n și determină valoarea lui n!.
Date de intrare[edit | edit source]
Programul citește de la tastatură numărul n.
Date de iesire[edit | edit source]
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[edit | edit source]
- 0 ⩽ n ⩽ 15
- prin definiție, 0! = 1
Exemplu[edit | edit source]
Exemplul 1[edit | edit source]
- Intrare
- 4
- Ieșire
- Datele introduse corespund cerintelor.
- 24
Exemplul 2[edit | edit source]
- Intrare
- 0
- Ieșire
- Datele introduse corespund cerintelor.
- 1
Exemplul 3[edit | edit source]
- Intrare
- 16
- Ieșire
- Datele introduse nu corespund cerintelor.
Rezolvare[edit | edit source]
<syntaxhighlight lang="python" line>
- 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)
</syntaxhighlight>
Explicatie rezolvare[edit | edit source]
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.