刚开始看到这个题的时候我是一点思路都没有,我甚至还上网查
开方的算法
等看到人家的解题报告我彻底的震惊了
原来double这么厉害
原来pow还可以用来开方
开方的算法
等看到人家的解题报告我彻底的震惊了
原来double这么厉害
原来pow还可以用来开方
有学到了不少动西!!!!!
方法一:
#include <iostream>
#include <cmath>
using namespace std;
int main ()
{
double n,p;
long left, right,mid;
while(cin>>n>>p)
{
left = 0;
right = 1000000000;
while(left<right)
{
mid = (left+right)/2;
if(pow(mid,n) == p )break;
if(pow(mid,n) > p )right = mid;
if(pow(mid,n) < p )left = mid;
}
cout<<mid<<endl;
}
return 0;
}
方法二:
#include <iostream>
#include <math.h>
using namespace std;
int main(void) {
for (double dNum, dPow; cin >> dPow >> dNum;
cout << (int)(pow(dNum, 1.0 / dPow) + 0.5) << endl);
return 0;
}