C++实现如下:
***牛顿迭代法***
#include<iostream>
#include<iomanip>
#define jd 0.000001
using namespace std;
double lfg(double n){
double x0=n;
while(true){
double result=x0-(x0*x0*x0-n)/(3*x0*x0);
if((result*result*result-n<jd)&&(result*result*result-n>-jd)){
return result;
}
else{
x0=result;
}
}
}
int main(){
double n;
cin>>n;
cout<<fixed<<showpoint<<setprecision(1)<<lfg(n)<<endl;
return 0;
}
注意:
cout<<fixed<<showpoint<<setprecision(1)<<lfg(n)<<endl;
这样才能将double型的3输出为3.0