算法笔记练习 5.1 简单数学 问题 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
代码
#include <stdio.h>
int main() {
double x, ans;
int n;
while (scanf("%lf %d", &x, &n) != EOF) {
ans = x;
while (n--)
ans = ans * 2 / 3 + x / (3 * ans * ans);
printf("%.6lf\n", ans);
}
return 0;
}