1058:求一元二次方程(一元二次方程求根公式推导和运用)

推导

一元二次方程:只有一个未知数,且未知数的最高次数为2

一元二次方程的一般形式:

ax2+bx+c=0

a0

两边同时除以a      x2+bax+ca=0

配方                   x2+2×b2ax+(b2a)2+ca(b2a)2=0

整理                   (x+b2a)2=b24a2ca

                         (x+b2a)2=b24ac4a2

开平方整理          x=b±b24ac4a(正数负数的平方都为正)

题目


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

【题目描述】

利用公式x1=b+b24ac2ax2=bb24ac2a,求一元二次方程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

所有输出部分要求精确到小数点后5位,数字、符号之间没有空格。 【输入样例】 -15.97 19.69 12.02 【输出样例】 x1=-0.44781;x2=1.68075

解题思路、难点

本题主要根据derta(b24ac)>=<0的情况分类,derta(b24ac)=0这种情况应用精度问题解决derta(b24ac)<1e-9,其中输入数据应用double类型容易被忽略,用float测试点6不能通过.

查看代码



posted @   源谋人  阅读(247)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
点击右上角即可分享
微信分享提示