0534 - Factorial 1: Difference between revisions
Adina Timiș (talk | contribs) Pagină nouă: ==Cerința== Să se scrie un program care citește numărul natural n și determină valoarea lui n! = 1 * 2 * 3 * ... * 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 valoarea lui n!. ==Restricții și precizări== *0 ≤ n ≤ 1000; *prin definiție, 0! = 1; ==Exemplul 1== ;Intrare :4 ;Ieșire :Datele de intrare corespund restricțiilor impuse. :24 ==Exemplul 2== ;Intrare :1001 ;Ie... |
Adina Timiș (talk | contribs) No edit summary |
||
(One intermediate revision by the same user not shown) | |||
Line 25: | Line 25: | ||
def factorial(n): | def factorial(n): | ||
if n == 0: | if n == 0: | ||
return 1 | return 1 # factorialul lui 0 este 1 | ||
elif n < 0 or n > 1000 or not isinstance(n, int): | elif n < 0 or n > 1000 or not isinstance(n, int): | ||
print("Datele de intrare nu corespund | print("Datele de intrare nu corespund restricțiilor impuse.") # verificarea restricțiilor | ||
return None | return None | ||
else: | else: | ||
result = 1 | result = 1 # inițializăm rezultatul cu 1 | ||
for i in range(1, n+1): | for i in range(1, n+1): # parcurgem valorile de la 1 la n | ||
result *= i | result *= i # calculăm produsul | ||
return result | return result | ||
if __name__ == "__main__": | |||
n = int(input("Introduceți n: ")) | n = int(input("Introduceți n: ")) | ||
if factorial(n) is not None: | if factorial(n) is not None: | ||
print("Datele de intrare corespund restricțiilor impuse.") | print("Datele de intrare corespund restricțiilor impuse.") # verificăm dacă rezultatul factorialului există | ||
print(factorial(n)) | print(factorial(n)) # afișăm rezultatul | ||
</syntaxhighlight> | </syntaxhighlight> |
Latest revision as of 11:13, 21 May 2023
Cerința[edit | edit source]
Să se scrie un program care citește numărul natural n și determină valoarea lui n! = 1 * 2 * 3 * ... * 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 valoarea lui n!.
Restricții și precizări[edit | edit source]
- 0 ≤ n ≤ 1000;
- prin definiție, 0! = 1;
Exemplul 1[edit | edit source]
- Intrare
- 4
- Ieșire
- Datele de intrare corespund restricțiilor impuse.
- 24
Exemplul 2[edit | edit source]
- Intrare
- 1001
- Ieșire
- Datele de intrare nu corespund restricțiilor impuse.
Rezolvare[edit | edit source]
<syntaxhighlight lang="python" line="1">
- 0534 - Factorial 1
def factorial(n):
if n == 0: return 1 # factorialul lui 0 este 1 elif n < 0 or n > 1000 or not isinstance(n, int): print("Datele de intrare nu corespund restricțiilor impuse.") # verificarea restricțiilor return None else: result = 1 # inițializăm rezultatul cu 1 for i in range(1, n+1): # parcurgem valorile de la 1 la n result *= i # calculăm produsul return result
if __name__ == "__main__":
n = int(input("Introduceți n: ")) if factorial(n) is not None: print("Datele de intrare corespund restricțiilor impuse.") # verificăm dacă rezultatul factorialului există print(factorial(n)) # afișăm rezultatul
</syntaxhighlight>