题目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
- 答疑:
- 解题遇到问题?分享解题心得?讨论本题请访问: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 ****************************************************************/