我如何得到这个答案的负数?为什么我不能在返回函数时放一个负号?



问题

问题基本上是使用if和else循环来获得如上所示的输出。因此,根据调和级数公式,我返回的结果应为n大于1

我的代码基本上是这样的,似乎已经得到了正确的答案,但我总是以负值结束。逻辑是否有问题,或者是否有一种方法可以得到相反的结果,因为我已经尝试过做min()并从0中减去。

def alternating(n):
if n == 1:
return 1
else:
return 1/n + (-1**(n % 2)) * alternating(n-1)

你的函数不正确。

这个是:

"""
Harmonic series using recursion
See https://stackoverflow.com/questions/74476333/how-do-i-get-the-negative-of-this-answer-why-can-i-not-just-put-a-negative-sign
See https://i.stack.imgur.com/ShNUi.png
"""

def alternating(k):
if k != 1:
return (-1) ** (k + 1) / k + alternating(k - 1)
else:
return 1

请学会停止说和写"基本上"。这是一个高科技的填充词,类似于"唔"。别用它。

最新更新