看题传送门: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));
}
}