问题 K: 迭代求立方根
题目描述
立方根的逼近迭代方程是 y(n+1) = y(n)*2/3 + x/(3*y(n)*y(n)),其中y0=x.求给定的x经过n次迭代后立方根的值。
输入
输入有多组数据。
每组一行,输入x n。
输出
迭代n次后的立方根,double精度,保留小数点后面六位。
样例输入
4654684 1 65461 23
样例输出
3103122.666667 40.302088
AC代码:
#include<cstdio>
int main()
{
double x;
int n;
while(scanf("%lf%d",&x,&n)!=EOF)
{
double y=x;
for(int i=1;i<=n;i++){
y=y*2/3+x/(3*y*y);
}
printf("%0.6f\n",y);
}
return 0;
}
/**************************************************************
Problem: 2039
User: 2015212040209
Language: C++
Result: 正确
Time:0 ms
Memory:1116 kb
****************************************************************/