求解立方根或者是平方根甚至是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; }
求立方根
时间: 2024-11-04 18:13:18