猫史档案馆


算法第30层,求教

用户:如月影二如月影二查看:1 回复:5 评论:1 创建时间:2020-03-02T17:25:59


Recamán's数列是一个非常有趣的数列。它的第一项是1,后面的第n项遵从规律:a(n) = a(n-1) - n ;但是如果求得的a(n)小于等于0或者曾经在数列a(n)出现过,则a(n)的值为:a(n) = a(n-1) + n 。

这个数列的前几项为1,3,6,2,7,13······训练师,你能算出这个数列的第N项是多少吗?

参喵:无 答案解析: 答案中少个条件,加入后还是不对 def F(n):
List=[]
for i in range(1,n):
    List.append(F(i))

if n==1:
    return 1
if F(n-1)-n<=0 or F(n-1)-n in List:
    return F(n-1)+n
else:return F(n-1)-n
print(F(int(input())))   判定超时


回复

上一页1 页 / 共 1下一页
炼金树枝炼金树枝

你用递归效率很第的

点赞0


评论


炼金树枝炼金树枝

n=int(input())
a=1
l=[1]
for i in range(2,n+1):
    a1=a-i
    if a1<=0 or a1 in l:
        a1=a+i
    a=a1
    l.append(a)
print(a)

点赞1


评论


炼金树枝炼金树枝

可以从小算到大

点赞0


评论


恬静的玛洛斯N2xR恬静的玛洛斯N2xR

 

n=int(input())
a=1
l=[1]
for i in range(2,n+1):
    a1=a-i
    if a1<=0 or a1 in l:
        a1=a+i
    a=a1
    l.append(a)
print(a)

点赞0


评论


COFFEE_墨水衫斯啊_半退COFFEE_墨水衫斯啊_半退

emotion_编程猫_点赞

点赞0


评论