信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言—— 1058:求一元二次方程
时间限制: 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:求一元二次方程相关推荐
- 信息学奥赛一本通 提高篇 第一部分 基础算法 第2章 二分与三分
信息学奥赛一本通 提高篇 提高版 第一部分 基础算法 第2章 二分与三分 信息学奥赛一本通 提高篇 提高版 第一部分 基础算法 第2章 二分与三分_mrcrack的博客-CSDN博客_信息学奥赛一本通 ...
- 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言——1072:鸡尾酒疗法
时间限制: 1000 ms 内存限制: 65536 KB 提交数: 14035 通过数: 6189 [题目描述] 鸡尾酒疗法,指"高效抗逆转录病毒治疗". 人们在鸡尾酒疗法的基础上 ...
- 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言——1112:最大值和最小值的差
时间限制: 1000 ms 内存限制: 65536 KB 提交数: 9363 通过数: 5690 [题目描述] 输出一个整数序列中最大的数和最小的数的差. [输入] 第一行为M,表示整数个数,整数个数 ...
- 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言——1109:开关灯
时间限制: 1000 ms 内存限制: 65536 KB 提交数: 11709 通过数: 5381 [题目描述] 假设有N盏灯(N为不大于5000的正整数),从1到N按顺序依次编号, 初始时全部处于开 ...
- 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言——1108:向量点积计算
时间限制: 1000 ms 内存限制: 65536 KB 提交数: 6036 通过数: 4909 [题目描述] 在线性代数.计算几何中,向量点积是一种十分重要的运算. 给定两个n维向量a=(a1,a2 ...
- 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言——1107:校门外的树
时间限制: 1000 ms 内存限制: 65536 KB 提交数: 11290 通过数: 6162 [题目描述] 某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是1米. 我们可以把马路 ...
- 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言——1106:年龄与疾病
时间限制: 1000 ms 内存限制: 65536 KB 提交数: 10304 通过数: 5830 [题目描述] 某医院想统计一下某项疾病的获得与否与年龄是否有关,需要对以前的诊断记录进行整理, 按照 ...
- 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言——1105:数组逆序重存放
时间限制: 1000 ms 内存限制: 65536 KB 提交数: 10572 通过数: 7206 [题目描述] 将一个数组中的值按逆序重新存放.例如,原来的顺序为8,6,5,4,1.要求改为1,4, ...
- 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言——1103:陶陶摘苹果
时间限制: 1000 ms 内存限制: 65536 KB 提交数: 12908 通过数: 8682 [题目描述] 陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果. 苹果成熟的时候,陶陶就会 ...
- 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言——1102:与指定数字相同的数的个数
时间限制: 1000 ms 内存限制: 65536 KB 提交数: 12650 通过数: 8457 [题目描述] 输出一个整数序列中与指定数字相同的数的个数. [输入] 输入包含三行: 第一行为N,表 ...
最新文章
- swift中单例的创建及销毁
- python基础之Day23
- sklearn 笔记:make_blobs 生成聚类数据
- 【SpringBoot】 启动时,修改默认配置文件名称
- mysql变量string_mysql sql语句有变量 time_t变量转换为string
- lynda ux_举办UX午餐并学习并成为UX英雄
- FPGA时序约束设计经验总结
- 【设计模式】面向对象作业-超级母牛的故事
- python画五角星_Python第25课:海龟绘图_自定义函数的应用
- 软件测试 | 试用期总结万能模板
- oracle 12c中文手册,oracle Database12c 官方手册:《Oracle Database12c DBA官方手册(第8版)》.pdf...
- 【操作系统】-- 进程同步、信号量机制(整型信号量、记录型信号量、PV操作)
- C# 将系统时间转换成农历时间
- PLM与ERP的区别
- 多个excel表格数据汇总均值
- 一个双向转换火星文的玩具
- 维谛技术Vertiv 暑期实习
- ONLYOFFICE历史版本开发技术之三
- 制造业质量管理四大病因
- matlab编写数学公式计算,关于MATLAB Function实现数学运算的相关介绍
热门文章
- C# 控制台语音计算器
- JAVA常见错误处理方法 和 JVM内存结构
- 【转载】关于错误:ASP.NET The URL-encoded form data is not valid. .
- undefined reference to '__gxx_personality_v0'
- Resharper 5.0 注册码
- 进军中国软件,踏上寻找自我价值之路的菜鸟
- ToString格式大全
- 10-19 查询学生成绩及汇总其总学分 (10 分)
- 实验7.2 二维数组 7-8 螺旋方阵
- layui表格更改一列数据_layui数据表格隐藏列的方法介绍