北大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;
}
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;
}
相关文章推荐
- 一个北大学生妙答日本记者
- 分词:词性标注北大标准
- 如果没有开源软件没有免费软件,这个世界会怎么样?------评[盖茨北大演讲遭遇开源人士抗议]
- 清华给美国培养工程师,北大给美国培养老婆?
- 北大ACM-题型分类
- [观点]谢中卿:北大孔博士陷入金庸崇拜
- 北大ACM题型分类
- 【MVP】 Wenzhong Huang 北大硕士,微软MVP,微软嵌入式讲师,MCSE
- 【MVP】 Wenzhong Huang 北大硕士,微软MVP,微软嵌入式讲师,MCSE
- 如果没有开源软件没有免费软件,这个世界会怎么样?------评[盖茨北大演讲遭遇开源人士抗议]
- 关于北大青鸟课件下载发布事项
- 网络社区演绎北大新生活
- 如果没有开源软件没有免费软件,这个世界会怎么样?------评[盖茨北大演讲遭遇开源人士抗议]
- 有感于"盖茨北大演讲遭遇开源人士抗议"
- 北大教授讲健康养生之道:千万不要死于无知
- 李彦宏在北大2008本科生毕业典礼上的发言(图)
- 北大校歌〈燕园情〉
- 北大讲话
- 北大ACM-题型分类的代码
- 北大1068题