九度OJ 1166:迭代求立方根 (迭代)

时间限制:1 秒

内存限制:32 兆

特殊判题:

提交:3695

解决:1700

题目描述:

立方根的逼近迭代方程是 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
来源:
2009年北京航空航天大学计算机研究生机试真题

思路:

循环迭代。


代码:

#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
****************************************************************/


posted on 2015-10-26 09:45  梁山伯  阅读(368)  评论(0编辑  收藏  举报

导航