题目描述
验证尼科彻斯定理,即:任何一个整数m的立方都可以写成m个连续奇数之和。
例如:
1^3=1
2^3=3+5
3^3=7+9+11
4^3=13+15+17+19
输入
多组输入,输入一个整数。
输出
输出分解后的字符串。
样例输入
6
样例输出
31+33+35+37+39+41
ps:刚刚开始看这个题目的时候虽然感觉这是一个水题,但是自己却很久很久没做出来,很久很久…直到看了室友的代码,然后直接照搬过来,现在看看,是一个模拟+找规律的题目,
- 首先让算出n*n,因为它恰好等于中间的数,再判断n是奇数还是偶数,如果是奇数,那么它的平方正好是中间的奇数,如果是偶数,虽然它的平方是中间数,但是不是奇数,我们需要减去一才可以。
- 之后再找规律,奇数和偶数不同,找出第一个奇数的位置,我们要利用m与n的之间的关系去找出第一个奇数的位置,然后每次加2就可以输出来了
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n, b;
while (~scanf("%d", &n))
{
int m = n