1166.迭代求立方根
- 题目描述:
-
立方根的逼近迭代方程是 y(n+1) = y(n)*2/3 + x/(3*y(n)*y(n)),其中y0=x.求给定的x经过n次迭代后立方根的值。
- 输入:
-
输入有多组数据。
每组一行,输入x n。
- 输出:
-
迭代n次后的立方根,double精度,保留小数点后面六位。
- 样例输入:
-
3000000 28
- 样例输出:
-
144.224957
#include <iostream> #include <cstdio> using namespace std ; double func(double x , int n){ double temp = 0 ; double temp2 = 0 ; static int i = 0 ; if(n == 0){ return x ; }else{ temp2 = func(x , n-1) ; temp = temp2*((double)2/3) + x/(3*temp2*temp2) ; } return temp ; } int main(){ double x ; int n ; while(scanf("%lf %d",&x,&n)!=EOF){ //double型用%lf printf("%.6lf\n",func(x , n)) ; //.6就是输出6位!!! } return 0 ; }