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 ;
}

 

posted @ 2018-10-01 17:39  bernieloveslife  阅读(234)  评论(0编辑  收藏  举报