P1024 一元三次方程求解
注意点:
- 用二分法逼近时,保留两位小数的精度要求:if(a-b<=0.001):达到标准。
#include<iostream>
#include<stdio.h>
using namespace std;
double a,b,c,d;
double f(double x)
{
return a*x*x*x+b*x*x+c*x+d;
}
int main()
{
double x1,x2,xx;
int x;
cin>>a>>b>>c>>d;
for (x=-100;x<=100;x++)
{
x1=x; x2=x+1;
if (f(x1)==0) printf("%.2lf ",x1);
else
if (f(x1)*f(x2)<0)
{
while (x2-x1>=0.001)
{
xx=(x1+x2)/2;
if (f(x1)*f(xx)<=0) x2=xx;
else x1=xx;
}
printf("%.2lf ",x1);
}
}
cout<<endl;
return 0;
}
1325:【例7.4】 循环比赛日程表
第一次见到这种找规律的题,原来它属于分治呀。想要解决这种题的话,首先是要看懂题目的样例(神特么给出表格内容但是不给表头);其次是如果要找规律的话,不能按照自己的思路去想这个比赛应该怎么安排(其他策略的安排方式肯定有,但是和题目不一样)&#