2573: 连续奇数和

Posted mjn1

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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;
}

  

以上是关于2573: 连续奇数和的主要内容,如果未能解决你的问题,请参考以下文章

「CJOJ2573」Snake vs Block

程序将数组分成N个连续子数组,使每个子数组的和为奇数

P2573 [SCOI2012]滑雪

C++将整数数组分割成奇数和偶数两个数组的源码

LeetCode 1550. 存在连续三个奇数的数组

5个连续的自然数,第一个是奇数那么这五个数的和是啥?