程序员

atcoder abc166-D

2020-05-17  本文已影响0人  waaagh

题目大意:找出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;
}
上一篇 下一篇

猜你喜欢

热点阅读