题解 | #尼科彻斯定理#
尼科彻斯定理
https://www.nowcoder.com/practice/dbace3a5b3c4480e86ee3277f3fe1e85
#include <stdio.h> //m个连续奇数其实就是一个公差为2,共有m项的等差数列 //由等差数列前n项和公式:Sn=(n(a1+an))/2 // 第n项公式:an=a1+(n-1)d //设m个连续奇数组成的等差数列的首项为i //那么前m项和为:( m (i+ (i+2(m-1)) ) )/2 //即 m * i + m * (m - 1) int main() { int m = 0; scanf("%d", &m); int i = 1;//奇数开头 int j = 0; int count = m * m * m;//设m的立方为count while (i > 0) { if (m * i + m * (m - 1) == count)//整数m的立方与m个连续奇数之和相等 { for (j = 0; j < m; j++)//负责打印 { if (j == m - 1)//最后一个数时不用打印 + 号 printf("%d", i); else { printf("%d+", i); } i += 2; } break; } i += 2;//每次增加2,所得都为奇数 } return 0; }