天天看点

华为OJ——尼科彻斯定理

尼科彻斯定理

题目描述

验证尼科彻斯定理,即:任何一个整数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

输入例子:

6

输出例子:

31+33+35+37+39+41

解答代码:

#include <iostream>
#include <vector>
#include <string>
#include <fstream>
#include <cstring>
#include <algorithm>
using namespace std;

int main()
{
    int n,i;
    while(cin>>n)
    {
        int s=n*n*n;
        for(i=1;; i+=2)
        {
            int temp=i;
            int result=0;
            for(int j=0; j<n; j++)
            {
                result+=temp;
                temp+=2;
            }
            if(result==s)
                break;
        }
        for(int k=0; k<n; k++)
        {
            if(k!=n-1)
                cout<<i<<'+';
            else
                cout<<i<<endl;
            i+=2;
        }
    }
    return 0;
}
           

继续阅读