c++迭代法求立方根
答案:2 悬赏:40
解决时间 2021-03-06 09:33
- 提问者网友:唤魂
- 2021-03-06 01:40
iostream;endl;a
最佳答案
- 二级知识专家网友:许你一世温柔
- 2021-03-06 02:54
定义的类型的精确度太差,在计算过程中很多机器误差,建议你看一下matlab里面那些求解方程函数的原型。
全部回答
- 1楼网友:时光挺欠揍
- 2021-03-06 04:13
我找了一段正确的程序,如下:
注意看,它的判断条件跟你的是不同的,还有就是你的代码,一开始x1=0的话,x2=2/3*x1+a/(3*x1*x1); 分母为0了,当然出错了。
求立方根的牛顿法基于如下事实,如果y是x的立方根的一个近似值,那么下式将给出一个更好的近似值:
(x/y2+2y)/3
代码:
#include<stdio.h>
#include <math.h>
float fun(float guess,float x)
{
if(abs(guess*guess*guess-x)<0.0000001) return guess;
else
return fun((x/guess/guess+2*guess)/3,x);
}
int main()
{
float a,b;
while(scanf("%f%f",&a,&b))
printf("%f\n",fun(a,b));
}
//a表示你猜测b的立方根大概等于几.
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯
• 手机登qq时,显示手机磁盘不足,清理后重新登 |
• 刺客的套装怎么选啊? |