这题主要刚开始最后一组数据1000000 5得到的结果总是9 = =
后来才发现好像是前面的数的精度问题,这方面还是缺乏意识啊!
原本一直写log(a)/log(b)的,后来换成pow(a,1/b)才成功
#include<stdio.h>
#include<math.h>
int main()
{
double a,b,c,x,y,z;
int d;
scanf("%lf %lf",&a,&b);
while(a!=0&&b!=0)
{
c=pow(a,1/b);
d=(int)c;
x=fabs(a-pow(d-1,b));
y=fabs(a-pow(d,b));
z=fabs(a-pow(d+1,b));
if(x<y&&x<z)
d=d-1;
if(y<x&&y<z)
d=d;
if(z<x&&z<y)
d=d+1;
printf("%d\n",d);
scanf("%lf %lf",&a,&b);
}
}