二分查找 Problem 1001 Can you solve this equation?
2016-04-08 23:09
375 查看
Problem ID:1001 Can you solve this equation?
简单题意:8*x^4 + 7*x^3 + 2*x^2 + 3*x + 6 == Y,给出Y的值,且已知x的值在0到100之间,求出x的值。如果没有解,则输出:No solution!
解题思路形成过程:比较基本的二分题目,注意设置一个判断条件,如果x=0时得到的值比Y大或x=100时得到的值比Y小,直接输出No solution!因为函数是递增的。
感想:注意分析函数关系和边界条件。
代码:
#include<iostream> #include<stdio.h> #include<math.h>d using namespace std; double cal(double n) { return 8*pow(n,4)+7*pow(n,3)+2*pow(n,2)+3*n+6; } int main() { int n; cin>>n; while(n--){ double m,mid; scanf("%lf",&m); if(cal(0)>m||cal(100)<m)//注意输出"No solution!"的条件! cout<<"No solution!"<<endl; else{ double l=0,r=100; while(r-l>1e-9){ mid=(l+r)/2; if(cal(mid)>m) r=mid; else l=mid; } printf("%.4lf\n",mid); } } return 0; }
相关文章推荐
- Android学习(9) -- 点击事件中的View
- js第八节-函数返回值,定时器基础
- 在Linux下查看共享文件夹
- windows下使用makefile
- leetcode 202. Happy Number
- c++作业3
- hibernate级联删除错误
- servlet实现自动登录,并显示保存的用户信息
- LTE-TDD资源调度(2)-PBR、BSD和令牌桶设计
- 致自己
- 结对编程过程总结
- 结对
- 第三百七十一天 how can I 坚持
- 悲观锁和乐观锁
- The puzzle of eggs and floors
- URAL 1998 The old Padawan 二分
- STL学习系列六:List容器
- windows下gettext使用安装
- Android自定义View之圆形进度条
- Mac 安装 Homebrew