20:求一元二次方程的根

简介: 20:求一元二次方程的根

描述

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

输入

输入一行,包含三个浮点数a, b, c(它们之间以一个空格分开),分别表示方程ax2 + bx + c =0的系数。

输出

输出一行,表示方程的解。

若b2 = 4 * a * c,则两个实根相等,则输出形式为:x1=x2=…。

若b2 > 4 * a * c,则两个实根不等,则输出形式为:x1=…;x2 = …,其中x1>x2。

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

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

样例输入

样例输入1

1.0 2.0 8.0

样例输入2

1 0 1

样例输出

样例输出1

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

样例输出2

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

源码

#include<iostream>
#include<cmath>
#include<cstdio>
#include<algorithm>
using namespace std;
int main()
{
  double a,b,c,x1,x2,s;
  cin>>a>>b>>c;
  s=sqrt(b*b-4*a*c);
  x1=(-1*b+s)*1.0/(2*a);
  x2=(-1*b-s)*1.0/(2*a);
  if(b*b==4*a*c) 
  {
    cout<<"x1=x2=";
    printf("%.5lf",x1);
    cout<<endl;
  }
  if(b*b>4*a*c) 
  {
    cout<<"x1=";
    printf("%.5lf",x1);
    cout<<";";
    cout<<"x2=";
    printf("%.5lf",x2);
    cout<<endl;
  }
  if(b*b<4*a*c) 
  {
    cout<<"x1=";
  if(-1.0*b/(2*a)<0)
  {
    cout<<"-";
    printf("%.5lf",abs(-1.0*b/(2*a)));
  }
  else
    printf("%.5lf",abs(-1.0*b/(2*a)));
    cout<<"+";
    printf("%.5lf",abs(sqrt(4*a*c-b*b)*1.0/(2*a)));
    cout<<"i;";
    cout<<"x2=";
  if(-1.0*b/(2*a)<0)
  {
    cout<<"-";
    printf("%.5lf",abs(-1.0*b/(2*a)));
  }
  else
    printf("%.5lf",abs(-1.0*b/(2*a)));
    cout<<"-";
    printf("%.5lf",abs(sqrt(4*a*c-b*b)*1.0/(2*a)));
    cout<<"i"<<endl;
  }
  return 0;
}

以上代码仅供参考


目录
相关文章
|
存储 监控 安全
推荐5款极具效率的实用工具软件
每次分享实用的软件,都会给人一种踏实和喜悦的感觉,这也是我热衷于搜集和推荐高效工具软件的原因。
566 1
|
人工智能 自然语言处理 Java
快速带你上手通义灵码 2.0,体验飞一般的感觉
通义灵码个人版为开发者免费提供智能编码能力,专业版限免期内开放更多功能。使用需先注册阿里云账号,支持JetBrains IDEs、Visual Studio Code等开发工具。以Visual Studio Code为例,安装插件并登录后即可体验其强大功能。通义灵码2.0在代码生成、需求理解及单元测试自动化等方面有显著提升,支持多语言和复杂场景,大幅提高开发效率。
235966 39
快速带你上手通义灵码 2.0,体验飞一般的感觉
|
9月前
|
敏捷开发 存储 数据可视化
知识共享平台2025年趋势:未来企业如何通过平台实现高效知识流动
在企业运营中,知识库的及时更新与高效管理对团队协作和决策效率至关重要。随着信息量增长,传统手动管理方式已难以应对,看板类工具应运而生,提供可视化、透明化的信息管理方案。本文探讨看板工具在知识库管理中的核心应用场景,并推荐多款实用工具,助力企业提升信息共享与团队协作效率。
|
9月前
|
XML 存储 Java
Python-docx编号列表解析:从XML迷宫到结构化数据的破局之道
本文深入解析了Word文档中自动编号的存储机制及解析难题,探讨了其在技术处理中的障碍,并通过三种实战方案对比,帮助开发者高效提取结构化数据。内容涵盖底层XML结构、常见问题解决方案及性能优化技巧,适用于合同条款、文档自动化处理等场景。
593 0
|
12月前
|
人工智能 自然语言处理 物联网
如何成为企业级大模型架构师?
企业级大模型架构师需要掌握从 底层算力、模型训练、微调优化、推理部署、企业集成 到 安全合规 的全栈能力。这里提供一个完整的 企业级大模型架构师成长体系。
1269 4
文件太大不能拷贝到U盘怎么办?实用解决方案全解析
当我们试图将一个大文件拷贝到U盘时,却突然跳出提示“对于目标文件系统目标文件过大”。这种情况让人感到迷茫,尤其是在急需备份或传输数据的时候。那么,文件太大为什么会无法拷贝到U盘?又该如何解决?本文将详细分析这背后的原因,并提供几个实用的方法,帮助你顺利将文件传输到U盘。
农场养成种树种植游戏系统开发案例详细丨dapp农场养成种植种树游戏系统开发规则玩法/设计案例/功能逻辑/源码部署
  农场养成种树游戏(Farm simulation tree planting game)是一类模拟农场生活的游戏。在这种游戏中,玩家扮演农场主或农民的角色,通过种植和护理树木,以及进行相关的农业活动,来管理和发展自己的农场。
|
机器学习/深度学习 数据采集 人工智能
【AI在金融科技中的应用】详细介绍人工智能在金融分析、风险管理、智能投顾等方面的最新应用和发展趋势
人工智能(AI)在金融领域的应用日益广泛,对金融分析、风险管理和智能投顾等方面产生了深远影响。以下是这些领域的最新应用和发展趋势的详细介绍
1954 1
|
前端开发
antd mobile 作者教你写 React 受控组件和非受控组件(二)
曾经,我每次面试时几乎都会问一个问题:antd 中的 Input 组件是受控组件还是非受控组件?
710 0
antd mobile 作者教你写 React 受控组件和非受控组件(二)
|
API
Vue3之watch和watchEffect实战总结
Vue3之watch和watchEffect实战总结
471 0