验证尼科彻斯定理,即:任何一个整数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个连续奇数之和的形式输出。
数据范围:
进阶:时间复杂度:,空间复杂度:
验证尼科彻斯定理,即:任何一个整数m的立方都可以写成m个连续奇数之和。
例如:
1^3=1
2^3=3+5
3^3=7+9+11
4^3=13+15+17+19
输入一个int整数
输出分解后的string
6
31+33+35+37+39+41
num = int(input()) list1 = [] n = num*num str1 = [] #join()只能连接字符串 if num % 2==0: #当输出为偶数时,易观察到连续奇数和是从num^2往两边奇数和(不包括num),步长为2 #但为奇数时,需要加上自身平方 for i in range(1,num,2): list1.append(n - i) list1.append(n + i) else: for i in range(2,num,2): list1.append(n - i) list1.append(n + i) list1.append(n) list1 = sorted(list1) for i in range(len(list1)): str1.append(str(list1[i])) print('+'.join(str1))
n = int(input()) m = 1 + n*(n-1) ls = [] for i in range(n): ls.append(str(m)) m += 2 print('+'.join(ls))
a=int(input()) b=a*a*a ii=1 total=0 while True: total=(ii+2*(a-1)+ii)*a/2 if total ==b: break ii=ii+2 c='' for i in range(0,a): c=c+str(ii)+'+' ii=ii+2 f = len(c)-1 c=c[0:f] print(c)
m = int(input()) l =[] for i in range(m**3+1): if i %2 !=0: l.append(i) t = 0 if m <=100: t =t+((1+m)*m)/2 s = int(t) k = l[s-m:s] print('+'.join(map(str,k)))我没有一上来就开始找首个奇数的规律,而是采用穷极法进行尝试。。。 的确是个笨方法
直接找规律,给定数字n,则这n个奇数为n(n-1)+1开头
import math while True: try: n = int(input()) lst = [] for i in range(n): lst.append(str(n*(n-1)+i*2+1)) print("+".join(lst)) except: break
n=int(input()) def solution(n): str1='' for i in range(1,n**3,2): str1=str1+str(i)+'+' s=i for j in range(i+2,n**3,2): s=s+j if s>n**3: break str1=str1+str(j)+'+' if s==n**3 and str1.count('+')==n: print(str1[:-1]) return 1 str1="" solution(n)
def main(): while True: try: m=int(input().strip()) task=[] if m&1==1: count=(m-1)//2 m2=m**2 for index in range(count): index+=1 task.append(m2-index*2) task=sorted(task,reverse=False) task.append(m2) for index in range(count): index+=1 task.append(m2+index*2) else: count=m//2 m2=m**2 for index in range(count): task.append(m2-1-index*2) task=sorted(task,reverse=False) for index in range(count): task.append(m2+1+index*2) pass print('+'.join(list(map(str,task)))) break except EOFError as e: break main()