题解 | #尼科彻斯定理#
尼科彻斯定理
https://www.nowcoder.com/practice/dbace3a5b3c4480e86ee3277f3fe1e85
import sys n = int(input()) sum = 0 for i in range(n): sum += i start = sum*2+1 for j in range(n): if j == n-1: print(start,end='') else: print(start,end='+') start += 2
定律定理大多有规律
1 = 1 -> 1个数累加
2 = 3+5 ->2个数累加
3 = 7+9+11 ->3个数累加
4 = 13+15+17+19 ->4个数累加
5 = 21+23+25+27+29 -> 5个数累加
6 = 31+33+35+37+39+41 ->6个数累加
这一看就是1 3 5 7 9 11 ...的奇数序列,找到指定的几个,第n+1个数列组的第一个数恰好是前n个数的和的2倍+1:
2 的第一个数是 3 =(0+1)*2 + 1= 3
3 的第一个数是 7 = (1+2)*2 + 1 = 7
4 的第一个数是 11 = (1+2+3)*2 +1 = 11
5 的第一个数是 21 = (1+2+3+4)*2 + 1 = 21
6 的第一个数是 31 = (1+2+3+4+5)*2 + 1 = 31