AT5404 题解
wangkangyou · · 题解
传送门
简述一下题意:(其实也没什么好简述的了)
给你一个数
讲一下我的思路:
暴力枚举即可。此题难在判断枚举范围上。其实我们可以从
其实我们从以上过程中可以发现,差的绝对值在几乎是在直线增长。终于到了第
差已经大于了
参考代码:
#include<bits/stdc++.h>
#define int long long
using namespace std;
int read(){
int sum=0,f=1;
char ch=getchar();
for(;!isdigit(ch);ch=getchar()) if(ch=='-') f=-1;
for(;isdigit(ch);ch=getchar()) sum=(sum<<3)+(sum<<1)+(ch^48);
return sum*f;
}
void write(int x){
if(x<0) putchar('-'),x=-x;
if(x>9) write(x/10);
putchar('0'+x%10);
return;
}
const int inf=1e10;
const int N=1e6+10;
int qpow (int a, int b){//快速幂,相当于a^b,理解即可
if (b == 0) return 1;
if (b == 1) return a;
int t = qpow (a, b / 2);
if (b % 2 == 1) return t * t * a;
return t * t;
}
signed main(){
int x = read ();
for (int i = -150; i <= 150; ++ i){
for (int j = -150; j <= 150; ++ j){
int a = qpow (i, 5);
int b = qpow (j, 5);
if (a - b == x){
write (i);
putchar (' ');
write (j);
return 0;
}
}
}
return 0;
}