2017-10-03
题目大意:
给出若干组整数,每组整数由n (1<=n<= 200)和p (1<=p<10^101)组成,对每组数据求一个k (1<=k<=109),使得k^n = p。
“一看,貌似是大数据的,其实不然,用double就可以解决。。。”
代码:
#include <stdio.h>
#include <math.h>
int main() {
double n,p;
while(scanf("%lf%lf",&n,&p) == 2) {
printf("%.0lf\n",pow(p,1/n));
}
}
附:C++中浮点型和整型定义的范围
#include <stdio.h>
#include <math.h>
#include <float.h>
#include <limits.h>
int main() {
//浮点型范围[DBL_MIN,DBL_MAX]
printf("\n\n%lf\n\n\n%lf\n",DBL_MIN,DBL_MAX);
//整型范围[INT_MIN,INT_MAX]
printf("\n\n%d\n\n\n%d",INT_MIN,INT_MAX);
}
运行结果:
0.000000
179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.000000
-2147483648
2147483647