第一次在这里发布。我自学python,对如何使用递归解决以下问题很感兴趣。 我们有一个公司,每个员工最多有7份报告。给定组织的深度x,找出包括CEO在内的最大员工数。这基本上就是求一个二叉树的最大节点数,除了用基数7代替基数2。你知道吗
我可以用公式(b**(d+1))/(b-1)线性求解,其中b是基,d是树的深度。你知道吗
def MaxNodes(d):
minions = ((7**(d+1)) - 1) / 6
return minions
我还迭代求解:
def answer(x):
minions = 1
for levels in range(x):
if (levels == 0):
minions = 7
else:
minions += (minions * 7)
return minions + 1
所以我们在0级中基本上有值1,从1级开始,我们从值7开始,一直乘以7,再加上前面的结果: 1+(7x1)+(7x7)+(49x7)。。。 抱歉,如果这是非常直截了当,但我不能围绕我的头怎么解决这个递归。你知道吗
事先谢谢你的帮助。你知道吗
如果要递归查找
7**x
:如果要递归查找
((7**(depth+1)) - 1) // 6
:示例:
输出:
可以使用^{} decorator 缓存
max_siblings()
计算下面是一个简单的递归实现:
深度作为参数传递,当它达到0时,函数返回1,从而停止递归。否则,函数将调用自身以获得较低级别的数字,将结果乘以7并将当前级别相加。你知道吗
相关问题 更多 >
编程相关推荐