(数字k在该序列中正好出现k次)。东东想知道这个数字序列的第n项是多少
疯狂序列
http://www.nowcoder.com/questionTerminal/0437f3063b224a0f89be5af54d5bc954
算出k的开始位置和结束位置,用一个列表来表示,然后在用输入的n列去和列表中的元素判断,确定在哪一个位置
def start(n):
end = [1]
# 第一个序列为第一项
for i in range(n): # 循环输入的n次
end.append(end[i] + i + 2) # 每循环一次算出下一个的元素(k结束的列),供下次比较
if n <= end[i]:
if i == 0: # 特殊情况
return 1
return end[i] - end[i-1] # 当前元素减去上一个元素的差就是k列对应的数
# 测试代码
if __name__=='__main__':
num = int(input())
print(start(num)) 