题目大意:找出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;
}
网友评论