首页 > 代码库 > poj 2109 Power of Cryptography

poj 2109 Power of Cryptography

Power of Cryptography
Time Limit: 1000MS   Memory Limit: 30000K
Total Submissions: 18408   Accepted: 9292
题目大意  给出两个数n,k
要你求个数ans  ans^n=k
关于题目中的数据范围全然能够用double完爆  不是必需用到二分+高精度
可是double类型尽管能表示10^(-307)   ~   10^308, (远大于题意的1<=p<10101这个范围),但仅仅能精确前16位,因此必须慎用
那么为了避免double对输入的数在运算过程中进行精确,那么我们必须让double的运算第一步就得到一个int(即小数点尾数全为0)
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
int main()
{
    double n,m;
    while(cin>>n>>m)
    cout<<pow(m,1/n)<<endl;
    return 0;
}

非常短有木有。

。。

。。

poj 2109 Power of Cryptography