美文网首页程序员
atcoder abc166-D

atcoder abc166-D

作者: waaagh | 来源:发表于2020-05-17 10:38 被阅读0次

    题目大意:找出A和B使得A5-B5=X。
    思路: 最主要是确定枚举范围,要使A5-B5最小,就要让A和B最接近,所以可以算N5-(N-1)5,循环N直到大于1e9,那就确定了范围。
    反思:假设A或B为0找范围显然是不合适的。
    代码:

    #include<bits/stdc++.h>
    using namespace std;
    #define LL  long long
    const LL mx = 1e9;
    // 确定范围用
    void test() {
        for(int i=1; i<1000; i++) {
            if((LL)(pow(i, 5) - pow(i-1, 5))>=mx) {
                cout << i << endl;
                return;
            }
        }
    }
    int main() {
        int X;
        cin >> X;
        //test();
        for(int i=-120; i<=120; i++) {
            for(int j=-120; j<=120; j++) {
                if(i*i*i*i*i - j*j*j*j*j==X) {
                    printf("%d %d\n", i, j);
                    return 0;
                }
            }
        }
        return 0;
    }
    

    相关文章

      网友评论

        本文标题:atcoder abc166-D

        本文链接:https://www.haomeiwen.com/subject/bwpjohtx.html