游客 Signup | Login
中文 | En

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;
}
Time Limit 1 second
Memory Limit 32 MB
Discuss Stats
上一题 下一题