# Chapter 4: Practice Makes Perfect

A huge part of learning recursion is practice! Please try the following problems; there are solutions in Chapter 5 to check your work. Keep in mind that these can be pretty difficult!

####

# 1) we'll start off with something familiar. without looking at sum digits,

# implement the following function so that md(number) returns the PRODUCT of the

# digits of number.

#

# md(4023) -> 4 * 0 * 2 * 3 = 0

# md(423) -> 4 * 2 * 3 = 24

####

def md(number):

if __________:

return _____

_____________________

_____________________

return __________________________

####

# 2) Exponents are basically repeated multiplication! For example,

# 2^3 (2 to the power of 3) = 2 * 2 * 2 = 8

# Basically, it's three 2's multiplied together.

# We can write a function for this recursively!

# 2 is the base, and 3 is the exponent in this case.

# So, for base ^ exponent, write the following function that returns that value!

#

# HINT: remember when we did factorial, we thought about how we have to

# make the problem smaller, and tried to relate the smaller problem

# to our original problem. That may help here!

#

# rec_power(2, 3) = 2 * 2 * 2 = 8

# rec_power(4, 2) = 4 * 4 = 16

#

####

def rec_power(base, exponent):

if ________________:

return ________

exponent = ___________________

return _______________________

####

# 3) Implement the following function so that count8(number)

# counts the number of times the number "8" appears in number.

#

# I've given you parts of the base cases; if the number left is 8, we've

# found an 8, so what should we return?

# If the number left isn't 8, but can't be made any smaller, what should

# we return then?

#

# count8(3283) -> 1

# count8(32883) -> 2

# count8(8388) -> 3

####

def count8(number):

if number == 8:

return _____

elif number < 10:

return _____

rightmost_digit = _________________

rest_of_number = __________________

if rightmost_digit == 8:

return _______________________

else:

return _______________________

Last modified 4yr ago