博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【PAT】3-1 二分法求多项式单根
阅读量:6160 次
发布时间:2019-06-21

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

二分法的步骤为:

 检查区间长度,如果小于给定阈值,则停止,输出区间中点(a+b)/2;否则

如果f(a)f(b)<0,则计算中点的值f((a+b)/2);

如果f((a+b)/2)正好为0,则(a+b)/2就是要求的根;否则

如果f((a+b)/2)与f(a)同号,则说明根在区间[(a+b)/2, b],令a=(a+b)/2,重复循环;

如果f((a+b)/2)与f(b)同号,则说明根在区间[a, (a+b)/2],令b=(a+b)/2,重复循环;

#include 
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;#define read() freopen("data.in", "r", stdin)#define write() freopen("data.out", "w", stdout)#define clr( a , x ) memset ( a , x , sizeof a ) #define cpy( a , x ) memcpy ( a , x , sizeof a ) #define _max(a,b) ((a>b)?(a):(b))#define _min(a,b) ((a
>a3>>a2>>a1>>a0>>a>>b; while(b-a >= 0.001)//因为精度要求是两位,那就保证最后的解在小数点后第三位精确就行 { mid = (a+b)/2; if (f(mid) == 0) { break; }else if (f(a)*f(mid) < 0) { b = mid; }else { a = mid; } } mid = (a+b)/2; printf("%.2f\n",mid ); return 0; }

  

转载于:https://www.cnblogs.com/acmsummer/p/4355993.html

你可能感兴趣的文章
检测oracle数据库坏块的方法
查看>>
SQL server 安装教程
查看>>
Linux下ftp和ssh详解
查看>>
跨站脚本功攻击,xss,一个简单的例子让你知道什么是xss攻击
查看>>
js时间和时间戳之间如何转换(汇总)
查看>>
js插件---图片懒加载echo.js结合 Amaze UI ScrollSpy 使用
查看>>
java中string和int的相互转换
查看>>
P1666 前缀单词
查看>>
HTML.2文本
查看>>
Ubuntu unity安装Indicator-Multiload
查看>>
解决Eclipse中新建jsp文件ISO8859-1 编码问题
查看>>
7.对象创建型模式-总结
查看>>
【论文阅读】Classification of breast cancer histology images using transfer learning
查看>>
移动端处理图片懒加载
查看>>
jQuery.on() 函数详解
查看>>
谈缓存和Redis
查看>>
【转】百度地图api,根据多点注标坐标范围计算地图缩放级别zoom自适应地图
查看>>
用户调研(补)
查看>>
ExtJS之开篇:我来了
查看>>
☆1018
查看>>