iNVAiN

博客园 首页 新随笔 联系 订阅 管理

题目1166:迭代求立方根

时间限制:1 秒

内存限制:32 兆

特殊判题:

提交:1396

解决:607

题目描述:

立方根的逼近迭代方程是 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年北京航空航天大学计算机研究生机试真题
答疑:
解题遇到问题?分享解题心得?讨论本题请访问:http://t.jobdu.com/thread-7889-1-1.html
-------------------
C语言实现如下:
 1 #include <stdio.h>
 2   
 3 double cubeRoot(double value, int n)
 4 {
 5     double originalValue = value;
 6     int i;
 7     for(i=1; i<=n; ++i)
 8     {
 9         value = value*2/3 + originalValue/(3*value*value);
10     }
11     return value;
12 }
13   
14 int main(void)
15 {
16     double value, result;
17     int n;
18     while(scanf("%lf %d", &value, &n) != EOF)
19     {
20         result = cubeRoot(value, n);
21         printf("%.6lf\n", result);
22     }
23     return 0;
24 }

九度OJ已AC:

/**************************************************************
    Problem: 1166
    User: kkzxak47
    Language: C
    Result: Accepted
    Time:10 ms
    Memory:904 kb
****************************************************************/

 

posted on 2013-02-25 21:46  iNVAiN  阅读(273)  评论(0编辑  收藏  举报