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

题目描述

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

例如:

1^3=1 

2^3=3+5 

3^3=7+9+11 

4^3=13+15+17+19 

 

接口说明

原型:


 /*
 功能: 验证尼科彻斯定理,即:任何一个整数m的立方都可以写成m个连续奇数之和。
 原型:
     int GetSequeOddNum(int m,char * pcSequeOddNum);
 输入参数:
     int m:整数(取值范围:1~100)
    
 返回值:
     m个连续奇数(格式:“7+9+11”);
 */

 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;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值