113 Power of Cryptography 浮点数 pow()函数

uva oj 上的一题. 113 - Power of Cryptography

就是给个 n 1<=n<=200 和 p 1<=p<10^101求个 k 1<=k<=10^9 使得k^n=p.

一开始看到p竟然和这么大个,傻不拉几地想到用高精度表示,我去,还真写上了代码.......但是那里出了问题,小一点的数测试可以,数大了好像死循环了........

然后看其他人怎么解的,看到了浮点型表示及范围,还有个pow()函数,这些其实不太懂,就学习了.......其实感觉学到了不少(我想是自己知道的太少吧!)

1.十进制小数和二进制的互换. http://www.cnblogs.com/xkfz007/articles/2590472.html

2.计算机中浮点数的表示.http://zhan.renren.com/programming4idiots?gid=3602888498026486936&checked=true  还有http://blog.sina.com.cn/s/blog_5fb3f1250100xodv.html

3.浮点数的范围.http://haipeng31.blog.163.com/blog/static/1056233442010112732014486/

 这样差不多理解了浮点数了.

 所以p完全可以用double来存而不是用麻烦的高精度.

4.pow()函数.http://baike.baidu.com/view/114061.htm

既然有现成的函数,那么.....呵呵.

下面是看到别人的代码,大神,不解释.

#include <stdio.h>
#include <math.h>

int main(void)
{
    int n;
    double p;
    while (scanf("%d %lf",&n,&p)!=EOF)
    {
        printf("%d\n",(int)(pow(p,1.0/n)+0.5));    //加个0.5应该是四舍五入
    }
    return 0;
}
原文地址:https://www.cnblogs.com/jiayith/p/3060694.html