题目描述:
验证尼科彻斯定理,即:任何一个整数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
样例输入: 6
样例输出: 31+33+35+37+39+41
代码:
#include <iostream>
#define MAX 100
using namespace std;
int main()
{
int num, res, res1, begin, i, sum = 0;
cin >> num;
if (num<1 || num>MAX)
return -1;
res = pow(num, 3);
res1 = sqrt(res);
begin = ((res1 % 2 == 1) ? 0 : 1) + res1;
for (i = 0; i < num; i++)
sum += (begin + 2 * i);
int foot = (res - sum) / num;
if (foot)
begin += foot;
for (i = 0; i < num; i++)
{
cout << begin;
if (i == num - 1)
cout << endl;
else
{
cout << '+';
begin += 2;
}
}
return 0;
}
得分 | 运行时间 | 内存 | 复杂度 | 最大嵌套深度 |
100(100) | 16ms | 2100KB | 9 | 3 |