目录
  1. 1. 一元二次方程公式
    1. 1.1. 问题描述
      1. 1.1.0.1. 输入格式
      2. 1.1.0.2. 输出格式
      3. 1.1.0.3. 数据范围
      4. 1.1.0.4. 输入样例:
      5. 1.1.0.5. 输出样例:
  2. 1.2. 问题分析
  3. 1.3. 代码实现
  4. 1.4. 运行结果
  5. 1.5. 总结
一元二次方程公式

一元二次方程公式

问题描述

读取三个浮点数a,b,c的值,利用一元二次方程求根公式对方程$ax^2+bx+c=0$进行求解。

一元二次方程求根公式为:

如果$b^2−4ac<0$导致方程无解或$a=0$,则输出“Impossivel calcular”。

输入格式

输入三个浮点数a,b,c。

输出格式

参照输出格式,输出方程的根,输出结果保留五位小数,如果无解则输出“Impossivel calcular”。
两个根可以按任意顺序输出,都算正确。

数据保证不存在只有一个解的情况。

数据范围

$−1000.0≤a,b,c≤1000.0$

输入样例:

10.0 20.1 5.1

输出样例:

R1 = -0.29788
R2 = -1.71212

问题分析

对于本题的需要采取条件判断,对于满足不同情况进行不同的输出,本题可以用到数学函数帮助解题。

代码实现

#include <iostream>
#include <bits/stdc++.h>
using namespace std;
int main(){
double a,b,c;
cin>>a>>b>>c;
double m=pow(b,2)-4*a*c;
if(m<0||a==0)
cout<<"Impossivel calcular";
else{
cout<<fixed<<setprecision(5)<<"R1 = "<<(-b+sqrt(m))/(2*a)<<endl;
cout<<fixed<<setprecision(5)<<"R2 = "<<(-b-sqrt(m))/(2*a)<<endl;
}
return 0;
}

运行结果

10.0 30.1 5.6
R1 = -0.19923
R2 = -2.81077

总结

本题进行了求平方根sqrt()与求平方pow(),并进行了数据精度的控制。

文章作者: Jachie Xie
文章链接: https://xjc5772.github.io/2020-01/25/%E7%AE%97%E6%B3%95/%E4%B8%80%E5%85%83%E4%BA%8C%E6%AC%A1%E6%96%B9%E7%A8%8B%E5%85%AC%E5%BC%8F/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 XJC&Blog
打赏
  • 微信
  • 支付宝

评论