题解 | #尼科彻斯定理#
尼科彻斯定理
https://www.nowcoder.com/practice/dbace3a5b3c4480e86ee3277f3fe1e85
验证尼科彻斯定理,即:任何一个整数m的立方都可以写成m个连续奇数之和。 #分析:显然,条件等价于对任意绝对值大于1的整数M, 满足式子: M**2 = (M**2 - 1) + (M**2 + 1) (M**2为偶数), M**2 = (M**2 - 2) + (M**2 + 2) (M**2为奇数), 通俗来说,总能找到一对奇数(假如条件存在),使其成立上式子 本例验证均为正整数 while True: try: m,l= int(input()),[] if m==1: print(str(1)) elif m>=2 and m%2!=0: #奇数时,m*m也是奇数且刚好处于解集中间,解集是公差为2,中间项为m*m的等差数列 for i in range(int(m*m-2*(m-1)/2),int(m*m+2*(m-1)/2+1),2): #注意转换成int l.append(i) print("+".join(map(str,l))) #转换成字符串 elif m>=2 and m%2==0: #偶数时,m*m也是偶数且刚好处于解集中间两数中间,解集是公差为2,中位数是m*m的等差数列 for i in range(int(m*m-1-(m/2-1)*2),int(m*m+1+(m/2-1)*2+1),2): #注意转换成int l.append(i) print("+".join(map(str,l))) #转换成字符串 except: break#HJ76##PYTHON##数据结构与算法教程#