1594 - 迭代求立方根
立方根的逼近迭代方程是 y(n+1) = y(n)*2/3 + x/(3*y(n)*y(n)),其中y0=x.求给定的x经过n次迭代后立方根的值。
<br />
Input
输入有多组数据。<br />
每组一行,输入x n。
<br />
Output
迭代n次后的立方根,double精度,保留小数点后面六位。
<br />
Examples
Input
4654684 1 65461 23
Output
3103122.666667 40.302088
Solution C
//立方根的逼近迭代方程是 y(n+1) = y(n)*2/3 + x/(3*y(n)*y(n)),其中y0=x. #include<stdio.h> #include<stdlib.h> int main() { double x,y; int n; while(scanf("%lf %d",&x,&n)!=EOF){ y=x; while(n--){y=y*2/3+x/(3*y*y);} printf("%.6lf\n",y); } }
Solution C++
#include <iostream> #include <cstdio> using namespace std; long long n; double x,y; int main(int argc,char* argv[]){ while(cin>>x>>n){ y = x; for(long long i=0;i<n;i++){ y = y*2/3 + x/(3*y*y); } printf("%.6f\n",y); } return 0; }