"""A simple example of a recursive function"""
def print_stars(n) :
if (n == 1) :
# base case - print one star
print '*'
else :
# recursive case - print one more star
print '*',
print_stars(n - 1)
# here's a version with an even simpler base case
def print_stars2(n) :
if (n == 0) :
# base case - end the line of input
else :
# recursive case; print one more star
print '*',
print_stars2(n - 1)
"""Recursive functions for computing x^n"""
# first a non-recursive function:
def pow_iterative(x, n) :
product = 1
for i in range(n) :
product = product * x
return product
# a recursive function for computing x^n:
def pow(x, n) :
"""Returns x^n"""
if n == 0 :
# base case; any number to 0th power is 1
return 1
else :
# recursive case: x^n = x * x^(n-1)
return x * pow(x, n-1)
def pow_no_base(x, n) :
return x * pow_no_base(x, n-1)
def pow2(x, n) :
if n == 0 :
# base case; any number to 0th power is 1
return 1
elif n % 2 == 0 :
# recursive case 1: x^y = (x^2)^(n/2)
return pow(x * x, n / 2)
else :
# recursive case 2: x^n = x * x^(n-1)
return x * pow(x, n - 1)
