由于方程式单调递增的,所以直接使用二分,找到误差不超过0.00005的解就可以了。
源代码:
#include<stdio.h>
double cal(double a){
double y = 8 * a*a*a*a + 7 * a*a*a + 2 * a*a + 3 * a + 6;
return y;
}
double decimal(double a){
double b=0;
return b;
}
int main(){
int t;
scanf("%d", &t);
while (t--){
double y;
scanf("%lf", &y);
if (y < 6 || y>807020306)printf("%s\n", "No solution!");
else {
double high=100, mid=50, low=0;
while ((high-low)>=0.000005){
if (cal(mid) > y){
high = mid;
mid = (high + low) / 2;
}
else {
low = mid;
mid = (high + low) / 2;
}
}
printf("%.4f\n", mid);
}
}
return 0;
}
本文介绍了一种使用二分查找法解决特定方程求解的问题,通过设定精确度阈值0.00005,实现了快速逼近方程解的过程。文中详细阐述了算法流程,并针对输入范围进行了有效性验证。
466

被折叠的 条评论
为什么被折叠?



