这道题要求p开n次方的结果。貌似要用大整数类,但仔细看会发现p的范围并不超过double类型的表示范围(负值取值范围为 -1.7976E+308 到 -4.94065645841246544E-324,正值取值范围为 4.94065645841246544E-324 到 1.797693E+308),所以调用pow函数就可以了。
注意pow计算后的结果要进行一个小处理防止结果出现小数。
我的解题代码如下:
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
double n,p;
while(cin >> n >> p)
{
cout << int(pow(p,1.0/n)+0.5) << endl;
}
return 0;
}