求一元二次方程的根 OpenJ_Bailian - 2707
利用公式x1 = (-b + sqrt(b*b-4*a*c))/(2*a), x2 = (-b - sqrt(b*b-4*a*c))/(2*a)求一元二次方程ax2 + bx + c =0的根,其中a不等于0。
Input
第一行是待解方程的数目n。
其余n行每行含三个浮点数a, b, c(它们之间用空格隔开),分别表示方程ax2 + bx + c =0的系数。
Output
输出共有n行,每行是一个方程的根:
若是两个实根,则输出:x1=...;x2 = ...
若两个实根相等,则输出:x1=x2=...
若是两个虚根,则输出:x1=实部+虚部i; x2=实部-虚部i
所有实数部分要求精确到小数点后5位,数字、符号之间没有空格。
x1和x2的顺序:x1的实部>Re的实部||(x1的实部==x2的实部&&x1的虚部>=x2的虚部)
Sample Input
3 1.0 3.0 1.0 2.0 -4.0 2.0 1.0 2.0 8.0
Sample Output
x1=-0.38197;x2=-2.61803 x1=x2=1.00000 x1=-1.00000+2.64575i;x2=-1.00000-2.64575i
Hint
1、需要严格按照题目描述的顺序求解x1、x2。
2、方程的根以及其它中间变量用double类型变量表示。
3、函数sqrt()在头文件math.h中。
4、要输出浮点数、双精度数小数点后5位数字,可以用下面这种形式:
printf("%.5f", num);
注意,在使用Java做此题时,可能会出现x1或x2等于-0的情形,此时,需要把负号去掉
#include <cstdio>
#include <iostream>
#include <cmath>
using namespace std;
int main()
{int n;cin>>n;while(n--){double a, b, c;double dt, x;cin>>a>>b>>c;dt = b*b - 4*a*c;x = -b/(2*a);if(fabs(x) == 0) {x = 0.0; }if(fabs(dt) ==0) {printf("x1=x2=%.5lf\n", x);}else{double dx = sqrt(fabs(dt))/(2*a); if(dt > 0){printf("x1=%.5lf;x2=%.5lf\n", x + dx, x - dx); }else {printf("x1=%.5lf+%.5lfi;x2=%.5lf-%.5lfi\n", x, dx, x, dx); }}}return 0;
}
求一元二次方程的根 OpenJ_Bailian - 2707相关推荐
- 计算概论(A)/基础编程练习1(8题)/4:求一元二次方程的根
1 #include<stdio.h> 2 #include<math.h> 3 int main() { 4 // 待解方程数目 5 int n; 6 scanf(" ...
- OpenJudge NOI 1.4 20:求一元二次方程的根
[题目链接] OpenJudge NOI 1.4 20:求一元二次方程的根 [题目考点] 1. 一元二次方程求根 包括求实根与虚根 2. if-else if-else语句 3. 浮点数比较 [解题思 ...
- 7-157 求一元二次方程的根 (20 分)
7-157 求一元二次方程的根 (20 分) 本题目要求一元二次方程ax2+bx+c=0的根,结果保留2位小数. 输入格式: 输入在一行中给出3个浮点系数a.b.c,中间用空格分开. 输出格式: 根据 ...
- c语言学习-求一元二次方程的根
求一元二次方程的根 程序流程图: 代码: #include<stdio.h> #include<math.h> void main() {float a,b,c,s,x1,x2 ...
- 实验3-1 求一元二次方程的根 (20 分)
实验3-1 求一元二次方程的根 (20 分) 本题目要求一元二次方程ax^2+bx+c=0的根,结果保留2位小数. 输入格式: 输入在一行中给出3个浮点系数a.b.c,中间用空格分开. 输出格式: 根 ...
- 例题(8.3) 求一元二次方程的根 (1051)
题目 - 例题(8.3) 求一元二次方程的根 (1051) 来源 计算概论05 描述 利用公式 x1 = (-b + sqrt(b*b-4*a*c))/(2*a) x2 = (-b - sqr ...
- Python 求一元二次方程的根(包括虚根)
如图所示,求一元二次方程的根(包括虚根),代码如下: import math a = float(input()) b = float(input()) c = float(input()) delt ...
- Java求一元二次方程的根
求一元二次方程的根. [问题描述]编写程序,从键盘输入三个系数ax2+bx+c=0,计算方程的解并输出.需要考虑方程有虚根.方程有实根.方程是一元一次方程.没有根等.输出方程的解并保留6位小数. im ...
- 25268 Problem E 例题3-5 求一元二次方程的根
问题 E: 例题3-5 求一元二次方程的根 时间限制: 1 Sec 内存限制: 128 MB 题目描述 求一元二次方程ax2+bx+c=0的根,三个系数a, b, c由键盘输入,且a不能为0,且保证 ...
最新文章
- 如何改变一个地图的Zoom单位
- Cortex-M3 异常中断向量表
- python的应用范围有哪些_Python主要应用场景有哪些?
- SAP Spartacus 项目执行 yarn build --stats-json 遇到的一些错误消息
- php:修改目录下文档权限(777,644 )
- SLAM Cartographer(15)位姿图
- java操作浏览器_java selenium 操作浏览器实例
- 如何安装CocoaPods,以便在Xcode中快速添加第三方库
- python教程pdf-python基础教程[高清][中文第2版].pdf
- 货币转换python代码_[Python3 练习] 003 货币转换
- ubuntu 16.04 蓝牙鼠标 (可连接但是无法使用)
- Go框架,库和软件的精选列表
- 估值15.59亿,融资15亿,百合网的新三板孤注一掷,局中有局!
- outlook客户端 outlook.com邮箱设置方法
- php redis 搜索,一步步实现 Redis 搜索引擎
- Java线上兼职家教_基于ssh/bs/java/asp.net/php/web的兼职家教网站
- 盘点“PayPal黑帮”成员的传奇创业故事
- 炉石传说如何修改服务器,《炉石传说》如何去其他服务器玩炉石
- 图机器学习-图神经网络
- 人机交互课堂分享 手势交互与体感交互