输入一个数b和n找一个a使得a的n次方更接近b。
首先求出第一个大于b的a再令a=a-1;再求二者减去b的绝对值,选择小的那个。
#include <iostream>
#include<cmath>
#include<cstring>
using namespace std;
int main()
{
int a,b,c,d,e[10000]={0},f=0,i;
while(cin>>a>>b&&a!=0&&b!=0)
{
for(i=0;i<10000004;i++)
{
if(pow(double(i),double(b))>=a)//求第一个大于b的a
{
c=pow(double(i),double(b));
d=pow(double(i-1),double(b));
if(abs(c-a)>abs(d-a))//看c与d谁与b离得更近
e[f]=i-1;
else e[f]=i;
break;
}
}
f++;
}
for(i=0;i<f;i++)
cout<<e[i]<<endl;
}