求立方根
求解立方根或者是平方根甚至是N次方根,均可用牛顿迭代法求解。
牛顿迭代法如下所示:

#include <iostream>
#include <fstream>
#include <string>
#include <vector>
#include <algorithm>
#include <cmath>
using namespace std;
double Lifanggen(double src)
{
double curx,nextx;
double fenzi,fenmu;
const double precision = 0.1; /* 精度 */
int flag = 0;
curx = src;
if (src == 0)
{
return 0;
}
fenzi = curx*curx*curx-src;
fenmu = 3*curx*curx;
do
{
nextx = curx-fenzi/fenmu; /* 牛顿迭代公式 */
if (fabs(curx-nextx) <= precision)
{
flag = 1;
}
else
{
flag = 0;
curx = nextx;
}
fenzi = curx*curx*curx-src;
fenmu = 3*curx*curx;
}while(flag == 0);
return nextx;
}
int main()
{
// fstream in("data.txt");
double src,dst;
cin>>src;
dst = Lifanggen(src);
printf("%.1f",dst);
cout<<endl;
return 0;
}
posted on 2014-08-17 15:26 xingma0910 阅读(1225) 评论(0) 收藏 举报
浙公网安备 33010602011771号