2573: 连续奇数和

题目描述

 

 

 

 小明看到一本书上写着:任何数字的立方都可以表示为连续奇数的和。

    比如:

2^3 = 8 = 3 + 5

3^3 = 27 = 7 + 9 + 11

 

 

虽然他没有想出怎么证明,但他想通过计算机进行验证。

所以聪明的你快来帮小明证明吧,你的工作就是要找出任何数字的立方的连续奇数之和的表示,如上式所示。

 

输入

多组数据输入,第一行输入一个数T,接下来有T行。

每行输入一个数n,表示你要计算立方的数字。

输出

输出对应n的立方之连续奇数和表示法的序列。

样例输入

2
2
3

样例输出

3 5
7 9 11

提示

 

如果对应一个n有多个表示方案,选择起始数字小的方案。

 

#include <iostream>
using namespace std;

int main()
{
	int t;
	cin >> t;
	while(t --)
	{
		int n, m;
		cin >> n;
		m = n * n * n;
		for(int i = 1; i <= m / 2 + 3; i = i + 2)
		{
			int sum = 0;
			for(int j = i; j <= m / 2 + 3; j = j + 2)
			{
				sum += j;
				if(sum == m)
				{
					for(int k = i; k <= j; k = k + 2)
						cout << k << " ";
					cout << endl;
				}
				if(sum > m)
				{
					break;
				}
			}
		}
	}
	
	return 0;
}

  

posted @ 2019-03-25 13:09  青衫客36  阅读(288)  评论(0编辑  收藏  举报