热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

bailian.openjudge2707:求一元二次方程的根

http:bailian.openjudge.cnpractice2707描述利用公式x1(-b+sqrt(b*b-4*a*c))(2*a),x2(-b-sqrt(b*b-4*a*



http://bailian.openjudge.cn/practice/2707


描述

利用公式x1 = (-b + sqrt(b*b-4*a*c))/(2*a), x2 = (-b - sqrt(b*b-4*a*c))/(2*a)求一元二次方程ax^2 + bx + c =0的根,其中a不等于0。


输入

第一行是待解方程的数目n。

其余n行每行含三个浮点数a, b, c(它们之间用空格隔开),分别表示方程ax2 + bx + c =0的系数。


输出

输出共有n行,每行是一个方程的根:

若是两个实根,则输出:x1=…;x2 = …

若两个实根相等,则输出:x1=x2=…

若是两个虚根,则输出:x1=实部+虚部i; x2=实部-虚部i

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

x1和x2的顺序:x1的实部>Re的实部||(x1的实部==x2的实部&&x1的虚部>=x2的虚部)


样例输入


3

1.0 3.0 1.0

2.0 -4.0 2.0

1.0 2.0 8.0



样例输出


x1=-0.38197;x2=-2.61803

x1=x2=1.00000

x1=-1.00000+2.64575i;x2=-1.00000-2.64575i



提示



  1. 需要严格按照题目描述的顺序求解x1、x2。

  2. 方程的根以及其它中间变量用double类型变量表示。

  3. 函数sqrt()在头文件math.h中。

  4. 要输出浮点数、双精度数小数点后5位数字,可以用下面这种形式: printf("%.5f", num);


代码

#include
#include
#include
using namespace std;
int main()
{
double a,b,c,x1,x2,bb,fourac,twoa,tmp,tmp1;
int n;
cin>>n;

for(int i=0; i {
cin>>a>>b>>c;
bb=b*b;
fourac=4*a*c;
twoa=-b/(a*2);
if(b==0)
twoa=0;
if(bb==fourac)
printf("x1=x2=%.5lf\n" , twoa);
else if(bb>fourac)
{
tmp=sqrt(b*b-4*a*c);
tmp1=2*a;
x1=(-b+tmp)/tmp1;
x2=(-b-tmp)/tmp1;
printf("x1=%.5lf;x2=%.5lf\n" , x1 , x2);
}
else
printf("x1=%.5lf+%.5lfi;x2=%.5lf-%.5lfi\n" ,twoa,(sqrt(fourac-bb)/(a*2)),twoa,(sqrt(fourac-bb)/(a*2)));
}
return 0;
}


推荐阅读
  • 在尝试加载支持推送通知的iOS应用程序的Ad Hoc构建时,遇到了‘no valid aps-environment entitlement found for application’的错误提示。本文将探讨此错误的原因及多种可能的解决方案。 ... [详细]
  • 在1995年,Simon Plouffe 发现了一种特殊的求和方法来表示某些常数。两年后,Bailey 和 Borwein 在他们的论文中发表了这一发现,这种方法被命名为 Bailey-Borwein-Plouffe (BBP) 公式。该问题要求计算圆周率 π 的第 n 个十六进制数字。 ... [详细]
  • 本文通过C++语言实现了一个递归算法,用于解析并计算数学表达式的值。该算法能够处理加法、减法、乘法和除法操作。 ... [详细]
  • 问题描述现在,不管开发一个多大的系统(至少我现在的部门是这样的),都会带一个日志功能;在实际开发过程中 ... [详细]
  • 本问题涉及在给定的无向图中寻找一个至少包含三个节点的环,该环上的节点不重复,并且环上所有边的长度之和最小。目标是找到并输出这个最小环的具体方案。 ... [详细]
  • 洛谷 P4009 汽车加油行驶问题 解析
    探讨了经典算法题目——汽车加油行驶问题,通过网络流和费用流的视角,深入解析了该问题的解决方案。本文将详细阐述如何利用最短路径算法解决这一问题,并提供详细的代码实现。 ... [详细]
  • spring boot使用jetty无法启动 ... [详细]
  • Web动态服务器Python基本实现
    Web动态服务器Python基本实现 ... [详细]
  • Jupyter Notebook多语言环境搭建指南
    本文详细介绍了如何在Linux环境下为Jupyter Notebook配置Python、Python3、R及Go四种编程语言的环境,包括必要的软件安装和配置步骤。 ... [详细]
  • 二维码的实现与应用
    本文介绍了二维码的基本概念、分类及其优缺点,并详细描述了如何使用Java编程语言结合第三方库(如ZXing和qrcode.jar)来实现二维码的生成与解析。 ... [详细]
  • Java 中的十进制样式 getZeroDigit()方法,示例 ... [详细]
  • 问题场景用Java进行web开发过程当中,当遇到很多很多个字段的实体时,最苦恼的莫过于编辑字段的查看和修改界面,发现2个页面存在很多重复信息,能不能写一遍?有没有轮子用都不如自己造。解决方式笔者根据自 ... [详细]
  • Android与JUnit集成测试实践
    本文探讨了如何在Android项目中集成JUnit进行单元测试,并详细介绍了修改AndroidManifest.xml文件以支持测试的方法。 ... [详细]
  • 本文介绍如何手动实现一个字符串连接函数,该函数不依赖于C语言的标准字符串处理函数,如strcpy或strcat。函数原型为void concatenate(char *dest, char *src),其主要作用是将源字符串src追加到目标字符串dest的末尾。 ... [详细]
  • 本文介绍了在Linux环境下如何有效返回命令行状态、上一级目录及快速查找头文件和函数定义的方法。包括处理长时间运行命令、编辑器退出技巧、目录导航以及文件搜索策略。 ... [详细]
author-avatar
家具销售_903
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有