问题
问题基本上是使用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
请学会停止说和写"基本上"。这是一个高科技的填充词,类似于"唔"。别用它。