天天看点

尼科彻斯定理/华为机试(C/C++)

题目描述

验证尼科彻斯定理,即:任何一个整数m的立方都可以写成m个连续奇数之和。

例如:

1^3=1 

2^3=3+5 

3^3=7+9+11 

4^3=13+15+17+19 

接口说明

原型:

 public String GetSequeOddNum(int m)

 {

     return null;

 }

输入描述:

输入一个int整数

输出描述:

输出分解后的string

示例1

输入

6
      

输出

31+33+35+37+39+41      

代码:

//第七十四题  尼科彻斯定理
#include<iostream>
#include<string>
using namespace std;
int main()
{
	int n;
	while (cin >> n)
	{
		int total = 0;
		int dst = n*n*n;
		int iMax = dst + 1;
		int i;
		int distance = n-1;
		string output;
		if (n & 1)
		{	
			for (i = n; i < iMax; i+=2)
			{
				total = n*(i + distance);
				if (total == dst)
					break;
			}
		}
		else
		{
			for (i = n+1; i < iMax; i += 2)
			{
				total = n*(i + distance);
				if (total == dst)
					break;
			}
		}
		iMax = i + ((n - 1) << 1);
		for (; i <iMax; i+=2)
		{
			output = output + to_string(i) + '+';
		}
		output = output + to_string(iMax);
		cout << output << endl;
	}
	return 0;
}
           

继续阅读