输入一个整数
。
在一行上输出一个字符串,用于描述这个数列中的元素从小到大相加的形式。元素与元素之间用加号连接。
1
1
2
3+5
3
7+9+11
4
13+15+17+19
n = int(input()) if n == 1: print(1) else: x = n*(n-1)+1 ods = [str(x+i*2) for i in range(n)] print('+'.join(ods))
n = int(input()) first = n * (n - 1) + 1 # 根据规律推出首项通式 rs = [first] for i in range(1, n): rs.append(first + 2 * i) print(*map(str, rs), sep="+")
n = int(input().strip()) # m = n*n - n + 1 m = n**2 - n + 1 for i in range(n): if i == n-1: print(m) else: print(m, end='+') m += 2
in_num = int(input().strip()) lower_num = in_num**3 // 4 for i in range(lower_num): if i % 2 == 1: factor = [i + 2 * n for n in range(in_num)] if sum(factor) == in_num ** 3: print('+'.join(map(str,factor)))
我是这样想的,既然是加起来等于m的三次方,那可以用暴力办法来遍历从1到m**3的所有奇数,直到找到一个奇数is使得连续m几个奇数的和等于m**3: n = int(input()) l = [] sum = n**3 for i in range(1,sum,2): if i//2 != 0 and n*i+n*(n-1) == sum: # l.append(i) for j in range(0,n): l.append(i+j*2) print("+".join(map(str,l)))