首页 > 试题广场 >

计算一元二次方程

[编程题]计算一元二次方程
  • 热度指数:87341 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
从键盘输入a, b, c的值,编程计算并输出一元二次方程ax2 + bx + c = 0的根,当a = 0时,输出“Not quadratic equation”,当a ≠ 0时,根据△ = b2 - 4*a*c的三种情况计算并输出方程的根。

输入描述:
多组输入,一行,包含三个浮点数a, b, c,以一个空格分隔,表示一元二次方程ax2 + bx + c = 0的系数。


输出描述:

针对每组输入,输出一行,输出一元二次方程ax2 + bx +c = 0的根的情况。

  如果a = 0,输出“Not quadratic equation”;

  如果a ≠  0,分三种情况:

△ = 0,则两个实根相等,输出形式为:x1=x2=...

△  > 0,则两个实根不等,输出形式为:x1=...;x2=...,其中x1  <=  x2。

△  < 0,则有两个虚根,则输出:x1=实部-虚部i;x2=实部+虚部i,即x1的虚部系数小于等于x2的虚部系数,实部为0时不可省略。实部= -b / (2*a),虚部= sqrt(-△ ) / (2*a)

所有实数部分要求精确到小数点后2位,数字、符号之间没有空格。

示例1

输入

2.0 7.0 1.0

输出

x1=-3.35;x2=-0.15
示例2

输入

0.0 3.0 3.0

输出

Not quadratic equation
示例3

输入

1 2 1

输出

x1=x2=-1.00
示例4

输入

2 2 5

输出

x1=-0.50-1.50i;x2=-0.50+1.50i
示例5

输入

1 0 1

输出

x1=0.00-1.00i;x2=0.00+1.00i
头像 牛客761929002号
发表于 2022-01-14 13:40:38
注意:题解最后答案是正确答案,最新更新是7.15日 题目更新,感谢有小伙伴提醒,以下为原答案: 注意一个点,4 0 0 测试用例,最后得到-0的原因是t==0的时候直接使用了-b,所以得到-0,正确写法应该还是规规矩矩的让他加0。-0+0 = 0 ">#include<math.h> i 展开全文
头像 JiapeiYang
发表于 2022-03-27 18:11:06
python中的负零输出解决: 在一些公式中,可能存在计算结果是 -0.00 的情况,此时正确输出应该是 0.00 处理方法:+0 举例: a,b = map(int,input().split()) #a>0 c = -b/(2*a) print('c') 当b为0时,输出 -0 应修改 展开全文
头像 花卷卷不卷
发表于 2022-08-26 01:24:25
好恶心的分类处理,同意的点个赞[惊讶] #include<iostream> #include<iomanip> #include<cmath> using namespace std; int main() {  & 展开全文
头像 杯浅
发表于 2022-04-29 13:17:18
#include <math.h> int main() { float a = 0.0; float b = 0.0; float c = 0.0; while (scanf("%f %f %f", &a, &b, &c) == 展开全文
头像 牛客题解官
发表于 2020-06-04 16:31:38
分析: 本题中的方程的计算方法已经给出,重点是如何对表达式进行计算(注意求值优先级,使用小括号保证优先级顺序)以及不同方程的解的情况,在这里使用了sqrt函数用于计算平方根。 题解: #include <bits/stdc++.h> using namespace std; int m 展开全文
头像 IvanHeoi
发表于 2022-05-26 14:31:15
#include<stdio.h> int main() {     float a,b,c,d;     while (scanf("%f %f %f",& 展开全文
头像 牛客559279456号
发表于 2021-10-24 21:48:07
#include<stdio.h> #include<math.h> int main() {     float a,b,c;     double tmp,Num 展开全文
头像 空杯心态&
发表于 2022-04-15 21:47:57
#include<stdio.h> #include<math.h> int main() {     double a = 0.0;     double 展开全文
头像 万千少男的梦
发表于 2023-12-10 18:14:40
#include <stdio.h> #include <math.h> int main() { float a, b, c; while (scanf("%f %f %f", &a, &b, &c) != EOF 展开全文
头像 一只咖啡君
发表于 2022-12-05 10:55:32
#include <stdio.h> #include <math.h> int main() { float a, b, c; while(scanf("%f %f %f", &a, &b, &c) != EOF) { 展开全文