描述
验证尼科彻斯定理,即:任何一个整数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复制
代码:
#对m为奇偶进行分类讨论, #若为偶数则直接从m^2往两边跨奇数步得到所有的值, #若为奇数则直接从m^2往两边跨偶数步得到所有值,m为奇数还要把m^2加上 #最后排序并转化为字符串输出即可 m=int(input()) m2=m*m lst1=[] if m%2==0: for i in range(1,m,2): lst1.append(m2-i) lst1.append(m2+i) else: for i in range(2,m,2): lst1.append(m2-i) lst1.append(m2+i) lst1.append(m2) lst1=sorted(lst1) for i in range(len(lst1)): lst1[i]=str(lst1[i]) print("+".join(lst1))