问题标题: 6452 一元三次方程求解,被我逮住啦!

2
4
已解决
颜庆平
颜庆平
新手光能
新手光能

6452   一元三次方程求解是一道6级题目,题目如下:

第一眼:WC,我一定不会做!!!

实际上:

直接AC

 

原因:

TM这课后作业,我不做都不行!!!(思考偷懒方法中。。。)

有啦!直接暴力枚举

看到这里,你懂了吗?

没错,这道题暴力枚举就行!!!

想看代码的往下滑,不想看的就去写

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

#include<iostream>
#include<cstdio>
using namespace std;
double a,b,c,d,a1,b1,c1,d1;
int num;
int main()
{
    scanf("%lf%lf%lf%lf",&a,&b,&c,&d);
    for(double i=-100.00;i<=100.00;i+=0.001){
        double x1=i,x2=i+0.001;
        if((a*x1*x1*x1+b*x1*x1+c*x1+d)*(a*x2*x2*r+b*x2*x2+c*x2+d)<0)
        printf("%.2f ",l);
        num++;
        if(num==3) break;
    }
    return 0;
}

 


0
已采纳
彭志杰
彭志杰
初级天翼
初级天翼

WOW,谢谢大佬,我直接暴力枚举也AC掉了,代码还贼短呢,才16行

0
董安雅
董安雅
新手光能
新手光能

二分速度更快

用一元三次方程求根公式其实也行(找实数根)

一看到这个就能想到二分(这其实是高斯求一元高次方程近似解的方法)

0
0
窦梁健
窦梁健
高级守护
高级守护

主要是他只让你保留两位小数,如果保留5000000位及以上就不能枚举了

0
窦梁健
窦梁健
高级守护
高级守护

而且他还告诉你在-100~100之间,只能说出题老师太仁慈

我要回答