1、使用递归计算某个数的power
什么是某个数的power:某个数的若干次方
def power(base, exponent):
if exponent==0 or exponent==1:
return base
else:
return base * power(base, exponent-1)
2、计算整数从1~N相加的和
def sumTill(targetNumber) :
# Base Case
if targetNumber == 1 :
return targetNumber
# Recursive Case
else :
return targetNumber + sumTill(targetNumber - 1)
3、使用递归计算余数-remainder
def mod(dividend, divisor) :
# Check division by 0
if divisor == 0 :
print("Divisor cannot be ")
return 0
# Base Case
if dividend < divisor :
return dividend
# Recursive Case
else :
return mod(dividend - divisor, divisor)
4、使用递归求最大公约数
def gcd(testVariable1, testVariable2) :
# Base Case
if testVariable1 == testVariable2 :
return testVariable1
# Recursive Case
if testVariable1 > testVariable2 :
return gcd(testVariable1 - testVariable2, testVariable2)
else :
return gcd(testVariable1, testVariable2 - testVariable1)
5、使用递归计算帕斯卡尔三角形
输入:第n行第k列
Example:
Notation:计算公式
def printPascal(testVariable) :
# Base Case
if testVariable == 0 :
return [1]
else :
line = [1]
# Recursive Case
previousLine = printPascal(testVariable - 1)
for i in range(len(previousLine) - 1):
line.append(previousLine[i] + previousLine[i + 1])
line += [1]
return line
6、使用递归进行二进制、十进制转化
输入:11
输出:"1011"
def decimalToBinary(number):
# base case
if number <=1:
return str(number)
else:
return decimalToBinary(number)//2 + decimalToBinary(number)%2
解释:理解10进制转二进制的操作过程