题解 | #尼科彻斯定理#

尼科彻斯定理

http://www.nowcoder.com/practice/dbace3a5b3c4480e86ee3277f3fe1e85

  1. 遍历求解(耗时过长,占用过多内存)
while True:
    try:
        m = int(input())
        m3 = pow(m,3)
        odd_set = [i for i in range(1,m3,2)]
        odd_num  = len(odd_set)
        for i in range(odd_num-m):
            odd_sub=odd_set[i:i+m]
            num = sum(odd_sub)
            if num == m3:
                  print("+".join(list(map(str,odd_sub))))
    except:
        break
        
            
  1. 利用数学公式求解
while True:
    try:
        m = int(input())
        m3 = pow(m,3)
        a = int((m3 - m*(m-1))/m)
        string=""
        for i in range(m):
            string+=str(a)
            string+='+'
            a+=2           
        print(string[:-1])
    except:
        break

去掉最后一个字符可以用 str[:-1]

全部评论

相关推荐

Pandaileee:校友加油我现在也只有一个保底太难了
点赞 评论 收藏
分享
双非一本失业第二年:《机器视觉垃圾分类》
点赞 评论 收藏
分享
尊嘟假嘟点击就送:加v细说,问题很大
点赞 评论 收藏
分享
点赞 1 评论
分享
牛客网
牛客企业服务