二分法查找基础
发布日期:2021-06-29 11:10:12 浏览次数:3 分类:技术文章

本文共 1329 字,大约阅读时间需要 4 分钟。

杭电2199Can you solve this equation?

Problem Description

Now,given the equation 8*x^4 + 7*x^3 + 2*x^2 + 3*x + 6 == Y,can you find its solution between 0 and 100;
Now please try your lucky.
Input
The first line of the input contains an integer T(1<=T<=100) which means the number of test cases. Then T lines follow, each line has a real number Y (fabs(Y) <= 1e10);
Output
For each test case, you should just output one real number(accurate up to 4 decimal places),which is the solution of the equation,or “No solution!”,if there is no solution for the equation between 0 and 100.

Sample Input

2
100
-4

Sample Output

1.6152
No solution!

这题是二分法查找。直接套模板

#include
#include
double f(double x){ return 8*pow(x,4.0)+7*pow(x,3.0)+2*pow(x,2.0)+3*x+6;}int main(){ int n; double m, l, ll, ans, mm; scanf("%d",&n); while(n--){ scanf("%lf",&m); l = 0; ll = 100; if(m >= f(0) && m <= f(100)){
//外界条件 ; while(ll-l > 1e-9){
//精确度 ; mm = (ll + l)/2; double ans = f(mm); if(ans > m){
//二分法; ll = mm-1e-9; } else{ l = mm+1e-9; } } printf("%.4lf\n",(ll+l)/2); } else printf("No solution!\n"); } return 0 ;}

转载地址:https://blog.csdn.net/zw1996/article/details/51317626 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:指针基础概念
下一篇:并查集简单模板及其解释

发表评论

最新留言

做的很好,不错不错
[***.243.131.199]2024年04月16日 07时36分33秒