POJ 2109 Power of Cryptography

看题传送门:http://poj.org/problem?id=2109


题目大意:

给定整数n和p求一个k使得k ^n = p.(1<=n<= 200, 1<=p<10^101)


看到p那么大。

常规思路是二分+高精度。

但是有巧妙的方法!!!!

double可以表示的范围10^(-307)   ~   10^308。

可以直接调用pow函数。。求K

给大神跪了,一行解决。。。

#include<cstdio>
#include<cmath>
int main()
{
	double n,p;
	while(scanf("%lf%lf",&n,&p)!=EOF)
	{
		printf("%.0lf\n",pow(p,1.0/n));
	}
}


posted @ 2013-09-23 17:03  hr_whisper  阅读(85)  评论(0)    收藏  举报