上代码:
#include <iostream>
class MyAlgo
{
public:
MyAlgo();
~MyAlgo();
double mi(double x, int y);
double kaifang(int m, int n);
};
double MyAlgo::mi(double x, int y)
{
while (y > 1) {
x = x * x;
y--;
}
if (y == 0)
return 1;
return x;
}
double MyAlgo::kaifang(int m, int n)
{
double x1;
double x0 = 2;
while (1) {
x1 = x0 - (mi(x0, n) - m) / (n * mi(x0, n - 1));
if (abs(x1 - x0) < 0.001)
break;
x0 = x1;
}
return abs(x1);
}
测试和输出:
#if NUTON_ITER
MyAlgo algoAPI;
cout<<algoAPI.kaifang(16,2)<<endl;
cout << algoAPI.kaifang(2, 2)<<endl;
#endif