本文将为大家带来“自定义函数求一元二次方程”算法的一个解法与详细解释,方法不唯一,本篇文章只列举出一种方法,可以先练习,练习之后查看代码,这样更加有助于提高。
一、题目
题目描述
求方程 的根,用三个函数分别求
当b^2-4ac大于0、
等于0、和小于0时的根
并输出结果。
从主函数输入a、b、c的值。
输入:
a b c
输出:
x1=? x2=?
样例输入:
4 1 1
样例输出:
x1=-0.125+0.484i x2=-0.125-0.484i
提示:以下是本篇文章正文内容,下面案例可供参考
二、解题思路
令一元二次方程判别式: b^2 - 4ac为变量number
当number > 0时:
x1 = (-b+sqrt(number)) / 2a
x1 = (-b-sqrt(number)) / 2a
当number= 0时:
x1 = x2 = -b / 2a
当number< 0时,一元二次方程无解当存在共轭复数:
x1 = -b/2a + sqrt(-number)×i
x1 = -b/2a - sqrt(-number)×i
示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。
三、代码(含详细注解)
import java.text.DecimalFormat;
import java.util.Scanner;
public class SeptemberFifteen35 {
public static void main(String[] args) {
// 创建控制台扫描器
Scanner input = new Scanner(System.in);
// 输入a b c
double a = input.nextInt();
double b = input.nextInt();
double c = input.nextInt();
// 平方根
double number = (Math.pow(b,2)-4*a*c);
double x1;
double x2;
double result;
// 保留三位小数点
DecimalFormat x = new DecimalFormat("0.000");
if(number>=0){
b = -b;
x1 = (b+Math.sqrt(number))/(2*a);
x2 = (b-Math.sqrt(number))/(2*a);
System.out.print("x1="+x.format(x1)+" x2="+ x.format(x2));
}else{
// 当只有一个实数根时
result = -b/(2*a);
x1 = (Math.sqrt(-number))/(2*a);
x2 = (-Math.sqrt(-number))/(2*a);
System.out.println("x1="+x.format(result)+"+"+x.format(x1)+"i"+" x2="+x.format(result)+x.format(x2)+"i");
// 关闭控制台扫描器
input.close();
}
}
}
四、答案检测网站(蓝桥杯)
希望本篇文章可以给您带来收获,有兴趣的小伙伴点个关注一起学习吧