时间限制: 1000 ms 内存限制: 65536 KB
提交数: 24853 通过数: 3925

【题目描述】

利用公式,求一元二次方程ax2+bx+c=0的根,其中a不等于0。结果要求精确到小数点后5位。

【输入】

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

【输出】

输出一行,表示方程的解。
若两个实根相等,则输出形式为:“x1=x2=…”;
若两个实根不等,在满足根小者在前的原则,则输出形式为:“x1=…;x2=…”;
若无实根输出“No answer!”。
所有输出部分要求精确到小数点后5位,数字、符号之间没有空格。

【输入样例】

-15.97 19.69 12.02

【输出样例】

x1=-0.44781;x2=1.68075

【来源】

NO

代码

#include <iostream>
#include <cstdio>
#include <cmath>
#define precision_1 1e-12
#define precision_2 1e-6
using namespace std;
int main ()
{double a,b,c,x1,x2,delta;cin>>a>>b>>c;delta=b*b-4*a*c;//判别式if(delta<0&&fabs(delta)>precision_1)//当判别式小于给定的精度范围内,即delta<0时,无实根printf("No answer!\n");else if(fabs(delta)<precision_1)//当判别式小于给定的精度但>0,此时delta≈0{x1=-b/(2*a);if(fabs(x1)<precision_2) //超出所给的最小范围,此时,视为delta=0,直接输出0printf("x1=x2=%.5lf\n",0);else//未超出所给范围时,结果仍在小数点后5位有效数字以内,输出结果printf("x1=x2=%.5lf\n",x1);}else//delta>0时{x1=(-b+sqrt(delta))/(2*a);x2=(-b-sqrt(delta))/(2*a);if(fabs(x1)<precision_2)  x1=fabs(x1);//小于所给的最高精度,编译系统视为-0,求绝对值if(fabs(x2)<precision_2) x2=fabs(x2);//小于所给的最高精度,编译系统视为-0,求绝对值if(x1<x2)//x1、x2中小的数在前输出printf("x1=%.5lf;x2=%.5lf",x1,x2);elseprintf("x1=%.5lf;x2=%.5lf",x2,x1);}return 0;
}

信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言—— 1058:求一元二次方程相关推荐

  1. 信息学奥赛一本通 提高篇 第一部分 基础算法 第2章 二分与三分

    信息学奥赛一本通 提高篇 提高版 第一部分 基础算法 第2章 二分与三分 信息学奥赛一本通 提高篇 提高版 第一部分 基础算法 第2章 二分与三分_mrcrack的博客-CSDN博客_信息学奥赛一本通 ...

  2. 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言——1072:鸡尾酒疗法

    时间限制: 1000 ms 内存限制: 65536 KB 提交数: 14035 通过数: 6189 [题目描述] 鸡尾酒疗法,指"高效抗逆转录病毒治疗". 人们在鸡尾酒疗法的基础上 ...

  3. 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言——1112:最大值和最小值的差

    时间限制: 1000 ms 内存限制: 65536 KB 提交数: 9363 通过数: 5690 [题目描述] 输出一个整数序列中最大的数和最小的数的差. [输入] 第一行为M,表示整数个数,整数个数 ...

  4. 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言——1109:开关灯

    时间限制: 1000 ms 内存限制: 65536 KB 提交数: 11709 通过数: 5381 [题目描述] 假设有N盏灯(N为不大于5000的正整数),从1到N按顺序依次编号, 初始时全部处于开 ...

  5. 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言——1108:向量点积计算

    时间限制: 1000 ms 内存限制: 65536 KB 提交数: 6036 通过数: 4909 [题目描述] 在线性代数.计算几何中,向量点积是一种十分重要的运算. 给定两个n维向量a=(a1,a2 ...

  6. 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言——1107:校门外的树

    时间限制: 1000 ms 内存限制: 65536 KB 提交数: 11290 通过数: 6162 [题目描述] 某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是1米. 我们可以把马路 ...

  7. 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言——1106:年龄与疾病

    时间限制: 1000 ms 内存限制: 65536 KB 提交数: 10304 通过数: 5830 [题目描述] 某医院想统计一下某项疾病的获得与否与年龄是否有关,需要对以前的诊断记录进行整理, 按照 ...

  8. 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言——1105:数组逆序重存放

    时间限制: 1000 ms 内存限制: 65536 KB 提交数: 10572 通过数: 7206 [题目描述] 将一个数组中的值按逆序重新存放.例如,原来的顺序为8,6,5,4,1.要求改为1,4, ...

  9. 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言——1103:陶陶摘苹果

    时间限制: 1000 ms 内存限制: 65536 KB 提交数: 12908 通过数: 8682 [题目描述] 陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果. 苹果成熟的时候,陶陶就会 ...

  10. 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言——1102:与指定数字相同的数的个数

    时间限制: 1000 ms 内存限制: 65536 KB 提交数: 12650 通过数: 8457 [题目描述] 输出一个整数序列中与指定数字相同的数的个数. [输入] 输入包含三行: 第一行为N,表 ...

最新文章

  1. swift中单例的创建及销毁
  2. python基础之Day23
  3. sklearn 笔记:make_blobs 生成聚类数据
  4. 【SpringBoot】 启动时,修改默认配置文件名称
  5. mysql变量string_mysql sql语句有变量 time_t变量转换为string
  6. lynda ux_举办UX午餐并学习并成为UX英雄
  7. FPGA时序约束设计经验总结
  8. 【设计模式】面向对象作业-超级母牛的故事
  9. python画五角星_Python第25课:海龟绘图_自定义函数的应用
  10. 软件测试 | 试用期总结万能模板
  11. oracle 12c中文手册,oracle Database12c 官方手册:《Oracle Database12c DBA官方手册(第8版)》.pdf...
  12. 【操作系统】-- 进程同步、信号量机制(整型信号量、记录型信号量、PV操作)
  13. C# 将系统时间转换成农历时间
  14. PLM与ERP的区别
  15. 多个excel表格数据汇总均值
  16. 一个双向转换火星文的玩具
  17. 维谛技术Vertiv 暑期实习
  18. ONLYOFFICE历史版本开发技术之三
  19. 制造业质量管理四大病因
  20. matlab编写数学公式计算,关于MATLAB Function实现数学运算的相关介绍

热门文章

  1. C# 控制台语音计算器
  2. JAVA常见错误处理方法 和 JVM内存结构
  3. 【转载】关于错误:ASP.NET The URL-encoded form data is not valid. .
  4. undefined reference to '__gxx_personality_v0'
  5. Resharper 5.0 注册码
  6. 进军中国软件,踏上寻找自我价值之路的菜鸟
  7. ToString格式大全
  8. 10-19 查询学生成绩及汇总其总学分 (10 分)
  9. 实验7.2 二维数组 7-8 螺旋方阵
  10. layui表格更改一列数据_layui数据表格隐藏列的方法介绍