http://acm.hdu.edu.cn/showproblem.php?pid=2740

题意:找到A,另A^N最接近B

思路:逆向考虑,B^(1/n)上下取整,在各取N次幂,看哪个更接近B

ps:注意上下取整

View Code
#include <stdio.h>
#include <math.h>
int main()
{
    int b,n;
    double temp;
    int p,q;
    while(scanf("%d%d",&b,&n),(b||n))
    {
        temp=pow(b*1.0,1.0/n);
        p=floor(temp);//向下取整
        q=ceil(temp);//向上取整
        if(b-pow(p,n)>pow(q,n)-b)
            printf("%d\n",q);
        else
            printf("%d\n",p);
    }
    return 0;
}