0534 - Factorial 1: Difference between revisions
Adina Timiș (talk | contribs) No edit summary |
Adina Timiș (talk | contribs) No edit summary |
||
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__": | 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>