题意:求A,使得A^N最接近B。
分析:A=B^(1/n),对其上下取整,在各取N次幂,取最接近B的。
#include<iostream> #include<cmath> using namespace std; int main() { int B,N,p,q; double tmp; while(cin>>B>>N && (B||N)) { tmp=pow(1.0*B,1.0/N); p=floor(tmp); //向下取整 q=ceil(tmp); //向上取整 if(B-pow(p,N)>pow(q,N)-B) cout<<q<<endl; else cout<<p<<endl; } return 0; }
时间: 2024-11-06 03:55:33