(数字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))
全部评论

相关推荐

影04714:把图书管理系统那个项目经验内容适当的减少掉,然后改成据为己有不要说团队项目,因为图书管理系统这类常见的谁来了都能独立写出来,提问能圆过来即可
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务