九度OJ 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 <stdio.h>
int main(void)
{
double x, y;
int n, i;
while (scanf("%lf%d", &x, &n) != EOF)
{
y = x;
for(i=1; i<=n; i++)
{
y = y*2/3 + x/(3*y*y);
}
printf("%.6lf\n", y);
}
return 0;
}
/**************************************************************
Problem: 1166
User: liangrx06
Language: C
Result: Accepted
Time:0 ms
Memory:912 kb
****************************************************************/
编程算法爱好者。
浙公网安备 33010602011771号