Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/data/math/factorial
diff options
context:
space:
mode:
Diffstat (limited to 'data/math/factorial')
-rw-r--r--data/math/factorial34
1 files changed, 34 insertions, 0 deletions
diff --git a/data/math/factorial b/data/math/factorial
new file mode 100644
index 0000000..42731d6
--- /dev/null
+++ b/data/math/factorial
@@ -0,0 +1,34 @@
+import time
+
+# define a factorial function in recursive flavor
+def factorial_recursive(number):
+ result = 1
+ if n > 0:
+ result = n * factorial_recursive(number-1)
+ print "factorizing: ", number, " result: ", result
+ return result
+
+# define a factorial function in iterative flavor
+def factorial_iterative(number):
+ result = 1
+ for i in range(1, number+1):
+ result = result * i
+ print "factorizing: ", i, " result: ", result
+ return result
+
+def calculate(number, type):
+ start = time.time()
+ if type == 0:
+ type_s = "recursive"
+ result = factorial_recursive(number)
+ else:
+ type_s = "iterative"
+ result = factorial_iterative(number)
+ delta = time.time() - start
+ print "Type: ", type_s, " in: ", 1/delta
+
+# ask for a number to factorize
+number = input("Please input a number:")
+print "Calculating..."
+calculate(number, 0)
+calculate(number, 1)