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

相关推荐

天天困啊:个人建议第一点就是熟悉Redis这里不要这么写,写上Redis比较核心的技术,什么缓存一致性,雪崩穿透击穿那些,掌握cos其实不用写在专业技能里这个你做了鱼皮的这个项目面试官默认应该认为你应该懂了,鱼皮这个项目核心挺多建议多啃啃,在做一个鱼皮的微服务项目俩项目在一起比较好哦
你的简历改到第几版了
点赞 评论 收藏
分享
自学java狠狠赚一...:骗你点star的,港卵公司,记得把star收回去
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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