POJ 2109

题目链接:http://poj.org/problem?id=2109


题意:给出n,p,求k满足k^n=p

思路:

如果用对数的话,即k=log(p)/log(n),但是double有效位只有6位,需要进行两次log运算,这会导致结果不精确。

所以,考虑直接使用pow()函数,只需要一行代码。

注意:输出的时候不能用printf,结果要求四舍五入,所以用cout比较好。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std;

const int maxn=1010;
double n,p;

int main(){
#ifndef ONLINE_JUDGE
	freopen("test.in","r",stdin);
	freopen("test.out","w",stdout);
#endif
    while(~scanf("%lf%lf",&n,&p)){
    	cout<<pow(p,1.0/n)<<endl;
    }
    return 0;
}


你可能感兴趣的:(POJ 2109)