Root of the Problem(求a,a^n接近b)

来源:互联网 发布:java写游戏代码 编辑:程序博客网 时间:2024/04/30 02:31

看到这道题我的思路就是开for循环一直直到找到i^n接近于b,但是超时,看了别人的博客发现逆向思维真的简单。

先对b开n次方,上下取整去找a,而且我学到了两个函数,

floor   向下取整
ceil    向上取整代码:#include<stdio.h>#include<math.h>int main(){    int b,n;    double z;    int p,q;    while(~scanf("%d%d",&b,&n))    {        if(n==0&&b==0)            break;        z=pow(b*1.0,1.0/n);        p=floor(z);        q=ceil(z);        if(b-pow(p,n)>pow(q,n)-b)//判断向上取整后的值与向下取整的值哪个更接近b,这个值就是a            printf("%d\n",q);        else            printf("%d\n",p);    }    return 0;}
转自:http://www.cnblogs.com/xiaohongmao/archive/2012/04/23/2466952.html

0 0
原创粉丝点击