美文网首页程序员
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