Abstract: learn recursion by computing
factorial.
Three key points using iterative method:
The start point,
The end point,
The condition for recursion
Here is the script:
# -*- coding: utf-8 -*-
"""
Created on Wed Jun 3 16:33:44 2015
@author: yuan
"""
class incrusive_examples():
def __init__(self):
pass
def factorial(self, number):
print number
if number==1: #endpoint
return 1
else:
return self.factorial(number-1)*number #incrusion conditon
#tail call optimization
def tail_call(self, number, product):
print number
if number==1:
return product
else:
return self.tail_call(number-1, product*number)
def factorial_2(self, number):
return self.tail_call(number, 1) #startpoint and endpoint
#main programming
#
incru=incrusive_examples()
#computer factorial of 10: 10!
#common programming
print incru.factorial(10)
#tail incrusion
print incru.factorial_2(10)
"""
Created on Wed Jun 3 16:33:44 2015
@author: yuan
"""
class incrusive_examples():
def __init__(self):
pass
def factorial(self, number):
print number
if number==1: #endpoint
return 1
else:
return self.factorial(number-1)*number #incrusion conditon
#tail call optimization
def tail_call(self, number, product):
print number
if number==1:
return product
else:
return self.tail_call(number-1, product*number)
def factorial_2(self, number):
return self.tail_call(number, 1) #startpoint and endpoint
#main programming
#
incru=incrusive_examples()
#computer factorial of 10: 10!
#common programming
print incru.factorial(10)
#tail incrusion
print incru.factorial_2(10)
#end
No comments:
Post a Comment