验证尼科彻斯定理,即:任何一个整数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
输入:
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 条评论) “” |