Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
136934 | 梁颢城 | 解一元三次方程 | C++ | 通过 | 100 | 0 MS | 244 KB | 780 | 2024-03-09 16:22:38 |
#include<bits/stdc++.h> using namespace std; double a,b,c,d; int main() { scanf("%lf%lf%lf%lf",&a,&b,&c,&d); for(double i = -100;i < 100;i++){ if(a*i*i*i+b*i*i+c*i+d == 0){ printf("%.2lf ",i); continue; } if((a*i*i*i+b*i*i+c*i+d)*(a*(i+1)*(i+1)*(i+1)+b*(i+1)*(i+1)+c*(i+1)+d) < 0){ double left = i,right = i+1; while(right - left > 0.00001){ double mid = (left + right)/2; if((a*left*left*left+b*left*left+c*left+d) * (a*mid*mid*mid+b*mid*mid+c*mid+d) < 0){ right = mid; }else{ left = mid; } } printf("%.2lf ",left); } } return 0; }