算法题之尼科彻斯定理

描述

验证尼科彻斯定理,即:任何一个整数m的立方都可以写成m个连续奇数之和。

例如:

1^3=1

2^3=3+5

3^3=7+9+11

4^3=13+15+17+19

输入一个正整数m(m≤100),将m的立方写成m个连续奇数之和的形式输出。

数据范围:1\le m\le 100\1≤m≤100

进阶:时间复杂度:O(m)\O(m) ,空间复杂度:O(1)\O(1)


输入描述:

输入一个int整数

输出描述:

输出分解后的string

示例1

输入:

6

复制

输出:

31+33+35+37+39+41
n = input()
if n == 1:
    print(n)
elif n % 2 == 0:
    result = []
    for i in range(int(n / 2)):
        result.append(n ** 2 - 2 * i - 1)
    for i in range(int(n / 2)):
        result.append(n ** 2 + 2 * i + 1)
    str_res = []
    for i in sorted(result):
        str_res.append(str(i))
    print("+".join(str_res))
else:
    result = []
    for i in range(int(n / 2) + 1):
        result.append(n ** 2 - 2 * i)
    for i in range(1, int(n / 2) + 1):
        result.append(n ** 2 + 2 * i)
    str_res = []
    for i in sorted(result):
        str_res.append(str(i))
    print("+".join(sorted(str_res)))
发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章