题意:求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;
}
HDU ACM 2740 Root of the Problem 简单数学题
原文地址:http://blog.csdn.net/a809146548/article/details/46288763