二分算法problem1001
来源:互联网 发布:ubuntu开机花屏 编辑:程序博客网 时间:2024/04/18 05:58
题意:就是让你寻找满足一个函数G(x)的x值,给出y值让你用二分法寻找最适合的值。
代码:
#include<iostream>
#include<cmath>
#include<iomanip>
#include<cstdio>
using namespace std;
double f(double x)
{
double m;
m=8*pow(x,4)+7*pow(x,3)+2*pow(x,2)+3*x+6;
return m;
}
int main()
{
int a;
double b;
cin>>a;
while(a--)
{
cin>>b;
double mid,x1=0;
double x2=100;
if((f(0)>b&&f(100)>b)||(f(0)<b&&f(100)<b))
{
cout<<"No solution"<<endl;
continue;
}
while(x2-x1>0)
{
mid=f((x1+x2)/2);
if(mid==b) break;
else if(mid>b){
x2=(x1+x2)/2;
}
else
x1=(x1+x2)/2;
}
cout<<setprecision(5)<<(x1+x2)/2;
#include<cmath>
#include<iomanip>
#include<cstdio>
using namespace std;
double f(double x)
{
double m;
m=8*pow(x,4)+7*pow(x,3)+2*pow(x,2)+3*x+6;
return m;
}
int main()
{
int a;
double b;
cin>>a;
while(a--)
{
cin>>b;
double mid,x1=0;
double x2=100;
if((f(0)>b&&f(100)>b)||(f(0)<b&&f(100)<b))
{
cout<<"No solution"<<endl;
continue;
}
while(x2-x1>0)
{
mid=f((x1+x2)/2);
if(mid==b) break;
else if(mid>b){
x2=(x1+x2)/2;
}
else
x1=(x1+x2)/2;
}
cout<<setprecision(5)<<(x1+x2)/2;
}
return 0;
return 0;
}
1 0
- 二分算法problem1001
- 练习四 Problem1001
- 二分算法
- 二分算法
- 二分算法
- 二分算法
- 二分算法
- 二分算法
- 二分算法
- 二分算法
- 二分算法
- [算法]二分查找算法
- 算法----二分查找算法
- BestCoder Round #83 Problem1001 zxa and set
- 二分查找算法
- [算法]有序二分查找
- 二分查找算法
- 常用算法- 二分查找
- 跟我一起学习MySQL技术内幕(第五版):(第二章学习日记4)
- Ubuntu环境下安装myeclipse
- Python def函数的定义、使用及参数传递实现代码
- C++第三次作业
- bzoj3170【TJOI2013】松鼠聚会
- 二分算法problem1001
- 切入业务日志
- LeetCode 160. Intersection of Two Linked Lists
- iOS 通知传值(顺传)
- bzoj2705【SDOI2012】Longge的问题
- ios pickerview选择城市
- Android ListView实现上拉到底部的时候自动刷新数据
- 98%的人没解出的德国面试逻辑题(离散数学篇)!?
- win10 wamp 无法启动 红色