题解 | #尼科彻斯定理# 最笨的方法 遍历求和

尼科彻斯定理

https://www.nowcoder.com/practice/dbace3a5b3c4480e86ee3277f3fe1e85

#include <iostream>
using namespace std;

int main() {
    int m;
    cin>>m;
    int big=m*m*m;
    pair<int,int> lag;//标记从哪个数到哪个数相加为所求。
    bool label=false;
    for(int i=1;i<big;i=i+2){
        int sum=i;
        for(int j=i+2;j<big;j=j+2){
            sum+=j;
            int num=(j-i)/2+1;
            if(sum==big && num==m){
                lag={i,j};
                label=true;
                break;
            }
            if(sum>big){
                break;
            }
        }
        if(label){
            break;
        }
    }
    //输出结果
    for(int i=lag.first;i<lag.second;i=i+2){
        cout<<i<<'+';
    }
    cout<<lag.second;
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务