Day11:麦卡锡91函数(McCarthy 91)
一. 问题背景:
McCarthy 91 是一个递归的函数表达式如下:
函数的意思是当输入一个大于 100 的数字 n 时返回 n-10,当 n<10 的时候递归的对 n 进行运算,但是结果总是 91。
二. 解决思路:
递归。
注:仍未理解该函数的意义以及使用情景。
三. 算法实现:
def mccarthy91(n):
k = 1
while k:
if n > 100:
n -= 10
k -= 1
else:
n += 11
k += 1
return n
# 递归写法
def mccarthy91_rec(n):
if n > 100:
return n - 10
else:
return mccarthy91_rec(mccarthy91_rec(n + 11))
print(mccarthy91_rec(50))