题解 | 尼科彻斯定理

# 解析法。除了动态规划之外的第2种方法。本方法重心在数学解析,不在编码。
# 先进行数学计算,再编码输出。
# 任何一个整数m的立方都可以写成m个连续奇数之和。
# 设连续奇数首位为a,作为公差为2的等差数列,于是末位b=a+2(m-1)
# 翻译为恒等式:m*m*m = [a+a+2(m-1)]*m/2 ,右边为等差数列求和。
# 求解得a=m*m-m+1, 末尾b=m*m+m-1
# 已知首尾项、公差,可以直接输出拆分结果

while True:
    try:
        m = int(input())
        start = m*m-m+1
        end = m*m+m-1
        result = [str(i) for i in range(start,end+1,2)]  # 取出等差数列所有的项。用str()将数转换为符号用于拼接
        print("+".join(result))
    except:
        break
		
		

全部评论

相关推荐

Java面试先知:我也是和你一样的情况,hr 说等开奖就行了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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