您的位置:首页 > 其它

北大2109题

2008-11-14 18:00 106 查看
 题目链接:http://acm.pku.edu.cn/JudgeOnline/problem?id=2109

1,题目的意思很简单就是求一个数的n次方根,但是很容易迷惑。因为题目给的数据范围很大达到10^101。但是如果知道双精度的浮点数可以最大表示到10^308次方时,这个题就很容易了。

2,为此这里对浮点数的计算机存储做了一些讨论:

(1)c和c++中float和double分别占用4个字节和8个字节。

(2)float和double在内存中都分为三部分存储:a)符号位,0表示正,1表示负。b)指数位,存储科学计数法中的指数位,并采用移位存储。c)尾数部分,即科学计数法中乘号之前的数据。

(3)由于不支持对图片的编辑,这里将文章上传到资源中。

<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />

#include <iostream>
#include <cmath>
using namespace std;
int main()
{
 freopen("in.txt","r",stdin);

 int n;
 double p;
 while(cin >> n >> p)
  cout << pow(p,1.0/n) << endl;
 return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  存储 float c