|
@@ -1,8 +1,4 @@
|
|
-def ffact(n):
|
|
|
|
- if n == 1:
|
|
|
|
- return 1
|
|
|
|
- else:
|
|
|
|
- return n*ffact(n-1)
|
|
|
|
|
|
+# méthode 1
|
|
def ffactfor(n):
|
|
def ffactfor(n):
|
|
if n<= 0:
|
|
if n<= 0:
|
|
return "bad",0
|
|
return "bad",0
|
|
@@ -11,14 +7,26 @@ def ffactfor(n):
|
|
for i in range(1,n+1):
|
|
for i in range(1,n+1):
|
|
ret *= i
|
|
ret *= i
|
|
return "ok",ret
|
|
return "ok",ret
|
|
-
|
|
|
|
|
|
+
|
|
|
|
+# méthode 2 (récursion)
|
|
|
|
+def ffact(n):
|
|
|
|
+ if n == 1:
|
|
|
|
+ return 1
|
|
|
|
+ else:
|
|
|
|
+ return n*ffact(n-1)
|
|
|
|
+
|
|
|
|
+# méthode 3 (lambda function)
|
|
fact = lambda x: 1 if x==1 else x*fact(x-1)
|
|
fact = lambda x: 1 if x==1 else x*fact(x-1)
|
|
|
|
+
|
|
|
|
+# méthode 4 (utilisation de la bibliothèque standard)
|
|
from functools import reduce
|
|
from functools import reduce
|
|
from operator import mul
|
|
from operator import mul
|
|
-#factstd(n)= lambda n: reduce(mul,range(1,n+1))
|
|
|
|
|
|
+
|
|
def factr(n):
|
|
def factr(n):
|
|
return reduce(mul,range(1,n+1))
|
|
return reduce(mul,range(1,n+1))
|
|
-
|
|
|
|
|
|
+#
|
|
|
|
+# On peut mettre les foctions dans une liste
|
|
|
|
+#
|
|
ll=[ffact,ffactfor,fact,factr]
|
|
ll=[ffact,ffactfor,fact,factr]
|
|
for fonc in ll:
|
|
for fonc in ll:
|
|
print(fonc(10))
|
|
print(fonc(10))
|