这道题要求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; }