提问人:Jemala 提问时间:1/14/2022 最后编辑:BarmarJemala 更新时间:1/14/2022 访问量:62
Python 数学序列
Python mathematical sequence
问:
我必须编写代码来手动输入 n 个数字,代码应该发现 sequence.n 的 n 个成员应该是自然数。该序列的公式是
f(n)=(f(n-1))²-1
第一个成员是 2,第二个是 3,第三个是 8,每个成员都是前一个数字的平方。代码应打印输入的序列的 n 个成员。 例如
In:3
Out:8
In:4
Out:63
我写了代码,但它不起作用
n = int(input("'input n:"))
def f(n):
if n < 0:
print('Undefined')
else:
return (f(n - 1) ** 2) - 1
print(f(n))
答:
1赞
Serge Ballesta
1/14/2022
#1
在递归中,您需要为停止索引返回一个确定的值。
在这里,你只需要在代码中写下序列的第一个值是 2:
def f(n):
if n < 0:
raise ValueError('Undefined') # better to raise to make sure to abort
elif n == 0:
return 2
else:
return (f(n - 1) ** 2) - 1
这足以返回 3 个并返回 8 个......f(1)
f(2)
评论
None
2**2 - 1 == 3
3**2 -1 == 8
f(0) == 2
ValueError