首页 > 其他分享 >求一元二次方程的根

求一元二次方程的根

时间:2024-08-25 20:53:03浏览次数:10  
标签:%. 虚部 样例 sqrt 一元二次方程 x2 x1

描述

利用公式x1 = (-b + sqrt(b*b-4*a*c))/(2*a), x2 = (-b - sqrt(b*b-4*a*c))/(2*a)求一元二次方程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 / (2*a), 虚部 = sqrt(4*a*c-b*b) / (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

来源

1709

主程序:

#include <bits/stdc++.h>
using namespace std;
double a,b,c,x1,x2,s,x;
int main() {
	cin >> a >> b >> c;
	x1 = (-b + sqrt(b * b - 4 * a * c)) / (2 * a);  
	x2 = (-b - sqrt(b * b - 4 * a * c)) / (2 * a); 
	s = -b / (2 * a);
	if(-b == 0) 
	{
		s = 0;
	}
	x = sqrt(4 * a * c - b * b) / (2 * a);
	if(b * b == 4 * a * c) 
	{
		printf("x1=x2=%.5f",x1);
	}
	if(b * b > 4 * a * c) 
	{
		printf("x1=%.5f;x2=%.5f",x1,x2);
	}
	if(b * b < 4 * a * c) 
	{
		printf("x1=%.5f+%.5fi;x2=%.5f-%.5fi",s,x,s,x);
	}
	return 0;
}

标签:%.,虚部,样例,sqrt,一元二次方程,x2,x1
From: https://blog.csdn.net/weixin_68261440/article/details/141496525

相关文章

  • 本题目要求一元二次方程ax^2+bx+c=0的根,结果保留2位小数。
    /*题目描述本题目要求一元二次方程ax^2+bx+c=0的根,结果保留2位小数。 输入输入在一行中给出3个浮点系数a、b、c,中间用空格分开。输入在一行中给出2个正整数A和B。输出根据系数情况,输出不同结果:1)如果方程有两个不相等的实数根,则每行输出一个根,先大后小;2)如果方程有两个......
  • C/C++计算一元二次方程ax²+bx+c=0的根,作业作弊神器
    //在日常计算中,我们通常要计算一元二次方程的根,当系数为整数时,硬着头皮算算就行,但如果系数位小数,有没掌握一定解题技巧,求根会变得异常困难,那么我们可以借助计算机的力量进行强行破解,只需在控制台上输入对应系数即可求根,大大提高计算效率。废话不多说上代码!!记得支持一下喔~~~//......
  • P9750 [CSP-J 2023] 一元二次方程题目总结
    根据题面,我们将分为多种情况讨论:若a为负数,那么将a,b,c全部取反首先求出data=b^2-4*a*c;1,data<=0cout<<”NO”;否则带入求跟公式:-b/2a+(-)sqrt(data)注意::gcd(a,b)有可能为负数,此处应用abs(x)取绝对值若开根号data为有理数{-b为2*a的倍数则直接输出b否则输出b/gcd(b,2*a......
  • 一元二次方程c++题目
    描述利用公式x1=(-b+sqrt(b*b-4*a*c))/(2*a),x2=(-b-sqrt(b*b-4*a*c))/(2*a)求一元二次方程ax2+bx+c=0的根,其中a不等于0。输入输入一行,包含三个浮点数a,b,c(它们之间以一个空格分开),分别表示方程ax?+bx+c=0的系数。输出输出一行,表示方程的解。若b2=4*a*c,则两个实根相......
  • 利用C语言进行常见的数学运算:一元二次方程求根
    从键盘输入a,b,c的值,编程计算并输出一元二次方程ax2+bx+c=0的根并保留两位小数.#include<stdio.h>//使用printf,scanf函数.#include<math.h>......
  • P9750 [CSP-J 2023] 一元二次方程 题解
    题面。直接依照题意模拟即可,注意细节。细节第一注意输出分式时分母为\(1\)不输出,分子为\(0\)直接输出零且不带正负号。第二约分时,\(gcd\)内的两个数应该都是非负实数。第三可以单独输出符号,注意别有多余的符号。第四当方程有两根且均是有理数时,要根据\(2a\)的正......
  • 实验3-11 求一元二次方程的根
    本题目要求一元二次方程ax2+bx+c=0的根,结果保留2位小数。(注意:0.00会在gcc下被输出为-0.00,需要做特殊处理,输出正确的0.00。)输入格式:输入在一行中给出3个浮点系数a、b、c,中间用空格分开。输出格式:根据系数情况,输出不同结果:1)如果方程有两个不相等的实数根,则每行输出一个根,先......
  • C语言经典例题(8) --- 进制A+B、网购、及格分数、最高分数、计算一元二次方程
    文章目录1.进制A+B2.网购3.及格分数4.最高分数5.计算一元二次方程1.进制A+B题目描述:输入一个十六进制数a,和一个八进制数b,输出a+b的十进制结果(范围-231~231-1)。输入描述:一行,一个十六进制数a,和一个八进制数b,中间间隔一个空格。输出描述:一行,a+b的十进制结果......
  • 使用CSDN编写一元二次方程
    一元二次方程标准形式:ax2+bx......
  • 一元二次方程ax2+bx+c=0,a、b、c的值由用户在三行中输入,根据用户输入的数值求解方程的
    输入格式输入三行数据每行输入一个实数输出格式方程的解示例1输入:852输出:该方程无实数解示例2输入:009输出:Dataerror!a=float(input())b=float(input())c=float(input())delta=b**2-4*a*c#德塔ifdelta<0:print("该方程无实数解")#ab==0elif......