(数字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))