一元三次方程求解(暴力)[NOIP2001 提高组]

题目要求:给你三个实数,a,b,c,d。分别为一元三次方程的四个常数,输出三个答案
答案均在-100至100之间
输入要求:一行,4个实数 a,b,c,d
输出要求:一行,3个实根,从小到大输出,并精确到小数点后2位。
样例输入:1 -5 -4 20
样例输出:-2.00 2.00 5.00

暴力筛查,数据范围给了,放心,不会爆掉的Q-Q

#include <bits/stdc++.h>
#include <cmath>
//万能头文件
using namespace std;
int main ()
//主函数
{
    double a,b,c,d;
	cin>>a>>b>>c>>d;
    //定义四个数,并输入
	for (double i=-100;i<=100;i+=0.001)//筛查,用for循环
    //从-100到100逐个筛查,每次加0.001,不然会漏答案
	{
		if (abs(i*i*i*a+i*i*b+i*c+d)<0.00001)
        //首先保证答案大于等于零,用abs,再代入公式,看看是否符合条件=0,这里写=0也可以
		{
			cout<<fixed<<setprecision(2)<<i<<' ';//输出两位小数,空格
		}
        //继续筛选
	}
    return 0;//完美收场,撒花
}

都看到这了,点个赞再走呗

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值