求一元二次方程:ax2+bx+c=0的根,a、b、c由键盘输入

  • 求一元二次方程:ax2+bx+c=0的根,a、b、c由键盘输入。
    • 流程图:
    • 程序代码:
    • 程序运行结果图:

求一元二次方程:ax2+bx+c=0的根,a、b、c由键盘输入。

流程图:

程序代码:

package com.Squ.www; //创建一个Squ包import java.util.Scanner;//导入java.util包中的Scanner类(使用此类可以方便的完成输入流的输入操作)
import java.math.BigDecimal;//导入java.math包中的BigDecimal(用来对超过    16位有效位的数进行精确的运算)//对一元二次方程中各系数的不同情况作讨论,列出不同情况下根的分布,最终求出存在的根
public class Squ { //定义一个公共类---Squpublic static void main(String[]args){   double X1,X2;//定义两个解System.out.println("方程表达式为:ax^2+bx+c=0");//显示台输出---方程表达式为:ax2+bx+c=0Scanner sc=new Scanner(System.in);//用Scanner类获取控制台的输入(即获得从键盘输入的数)System.out.println("请输入a的值:");//显示台输出提示---输入a的值//每一次从键盘输入值后回车执行后面的内容double a=sc.nextDouble();//接受控制台输入的数字给形参a赋值System.out.println("请输入b的值:");//显示台输出提示---输入b的值double b=sc.nextDouble();//接受控制台输入的数字给形参b赋值System.out.println("请输入c的值:");//显示台输出提示---输入c的值double c=sc.nextDouble();//接受控制台输入的数字给形参c赋值double t=b*b-4*a*c;//定义一个变量t,且t=b*b-4*a*c,此时t为方程根的判别式//用判断语句对方程的系数的不同情况作讨论,并得出根的分布情况//① 判断当a、b、c都为0时,方程变为等式0=0;方程不存在!if(a==0 && b==0 && c==0){System.out.println("方程不存在!");//显示台输出}//② 当a、b都为0,而c不为0时,方程变为等式c=0,此中不含未知数,方程不存在!else if(a==0 && b==0 && c!=0){System.out.println("方程不存在!");//显示台输出}//③ 当a为0,且b、c不为0时,方程变为一元一次方程bx+c=0,此时方程只有一个解else if(a==0 && b!=0 && c!=0){System.out.println("此方程为一元一次方程");//显示台输出double x1 = (-1 * c) / b;//定义一个变量result存放方程的解;此时解为:-c/bSystem.out.println("方程的解为:" + resetValue(x1));}//④ 以上定义了t=b*b-4*a*c,若t>0,则t的开方为实数,此时方程有两个不同的实根,且两实根为相反数else if(t>0){System.out.println("方程有两个实根");//显示台输出//第一根的算法:((-b) + Math.sqrt(t)) / 2 * a( Math.sqrt是指math方法中的sqrt类,即开方)X1= ((-b) + Math.sqrt(t)) / 2 * a;//第一根的算法:((-b) - Math.sqrt(t)) / 2 * aX2= ((-b) - Math.sqrt(t)) / 2 * a;//显示台输出两根的值System.out.println("X1="+resetValue(X1));System.out.println("X2="+resetValue(X2));}//⑤ 如果t<0,则t开方后产生虚数,此时方程有一对共轭副根else if(t<0){//⑥ 如果b不等于0,则其根为共轭副根,根由虚部和实部组成if(b!=0){X1=(-1*b)/(2*a);//根的实部X2=Math.sqrt(-1*t)/(2*a);//根的虚部System.out.println("方程有一对共轭复根:");//显示台输出//输出时toString()表示用科学计数法输出根的值;加i指虚部的表示法;其中的"+、-"连接根的实部和虚部,形成共轭System.out.println("X1="+resetValue(X1).toString()+"+"+resetValue(X2).toString()+"i");//输出第一个根的值System.out.println("X2="+resetValue(X1).toString() + "-"+ resetValue(X2).toString() + "i");//输出第二个根的值}//⑦ 若b=0,则此时根只有虚部没有实部,是一对共轭复根,实部为0else{X1=Math.sqrt(-1*t)/(2*a);//根中只有虚部System.out.println("方程有一对相反虚根:");//显示台输出//输出时toString()表示用科学计数法输出根的值;加i指虚部的表示法;其中的"+、-"连接根的实部和虚部,形成共轭,此时实部为0System.out.println("X1=0-"+resetValue(X1).toString()+"i");System.out.println("X2=0+"+resetValue(X1).toString()+"i");}}//⑧ 若t=0,则方程有一个实根else if(t==0){X1=(-1*b)/2*a;//根的计算System.out.println("方程有一个实根");//显示台输出System.out.println("方程的解为:"+resetValue(X1));//显示台输出方程的解}}//使用静态方法将定义的值由double类型转换为BigDecimal类型(声明)private static BigDecimal resetValue(double n) {// TODO 自动生成的方法存根BigDecimal bd=new BigDecimal(n);//将n的值赋给形参bd//返回的值保留两位小数,默认用四舍五入方式 (ROUND_HALF_UP表示遇5进1;setScale规定要保留的小数位数)return bd.setScale(2,BigDecimal.ROUND_HALF_UP);}}

程序运行结果图:

java求一元二次方程:ax2+bx+c=0的根相关推荐

  1. 求一元二次方程ax2+bx+c=0的根

    编写程序,用户输入一元二次方程的系数,求其根.程序能输入两组数据,得出两组结果,能处理复数根. 提示:两组输入可用下列循环实现: for(int i=0;i<2;i++) { -- } 程序运行 ...

  2. C语言 求一元二次方程ax2+bx+c=0的根

    #include<stdio.h> #include<math.h> int main() {int a,b,c,x,d;float x1,x2;scanf("%d% ...

  3. c语言计算一元二次方程ax2+bx+c=0的根,C语言,求一元二次方程ax2+bx+c=0的根。

    #include #include float x1,x2,disc,realpart,imagpart;//全局变量 float great_than_zero(float a,float b)// ...

  4. Java黑皮书课后题第3章:*3.1(代数:解一元二次方程)可以使用下面的公式求一元二次方程ax2+bx+c=0,编写程序提示用户输入a b c的值,并显示基于判断式的结果

    *3.1(代数:解一元二次方程)可以使用下面的公式求一元二次方程ax2+bx+c=0,编写程序提示用户输入a b c的值,并显示基于判断式的结果 题目 题目描述 运行示例 破题 代码 题目 题目描述 ...

  5. c语言求解一元二次方程的两相等实根,c语言改错题 有关求一元二次方程ax2+bx+c=0的两个实根...

    c语言改错题 有关求一元二次方程ax2+bx+c=0的两个实根0 麻烦帮忙看看下面三个程序的区别~~谢谢啦 下列是用于求一元二次方程ax2+bx+c=0的两个实根的三个c程序,分别采用不同的方法或使用 ...

  6. 求一元二次方程ax2+bx+c=0的实数根

    #include "math.h"  // 这个头文件是对应后面的sqtr函数 #include "stdio.h" int  main() { float a ...

  7. 汇编语言程序设计 --- 一元二次方程ax2+bx+c=0求解(含注释详细源代码)

    目录 一.实验内容 二.实验说明 三.实验报告要求 四.实验目的 五. 程序流程图 六.内存变化情况 七.源程序代码 (详细注释) 一.实验内容 一元二次方程ax2+bx+c=0求解. 二.实验说明 ...

  8. 一元二次方程ax2+bx+c=0的解

    解一元二次方程ax2+bx+c=0的解.输入 多组测试,每行输入三个实数a,b,c的值,a 不为0.输出 输出两个根X1和X2,用空格隔开,具体格式为:X1 X2其中大的根先输出,即X1>=X2 ...

  9. 【C语言】求一元二次方程ax²+bx+c=0 (b²-4ac>0即有实根)

    求一元二次方程ax²+bx+c=0的解: 分析: 1.一元二次方程求解 2.求根公式 代码实现: # include <stdio.h> # include <math.h>i ...

  10. C语言程序-求一元二次方程ax²+bx+c=0的实根解(设a≠0)

    一.问题描述 求一元二次方程ax²+bx+c=0的实根解(设a≠0) 二.算法设计 算法的具体步骤如下: ① 输入a.b.c: ② 计算判别式d=b*b-4*a*c: ③ 若d≥0,则求实根x₁,x₂ ...

最新文章

  1. linux rpm找不到命令_Linux安装软件
  2. 开源项目|基于darknet实现量化感知训练,已实现yolov3-tiny所有算子
  3. Memetic Algorithm(文化基因算法)
  4. 最小延迟调度问题——贪心算法(C++实现)
  5. 关于树的父子节点的图形化展示
  6. [考试]20151008
  7. cpython是什么_CPython是什么?PyPy是什么?Python和这两个东西有什么关系?
  8. 哔哩哔哩---P2 WPF基础入门视频(布局)
  9. 《初识Scratch》教学设计
  10. 安卓输入法 车机版_触宝输入法HD
  11. python正则表达式快速入门_Python 正则表达式入门
  12. CentOS 7下安装pptp服务端手记
  13. 变态矿工源码、闪电鸡app等软件的应用及发展方向的个人见解
  14. 大三学生简历_不要再问那些没有的高级开发人员了。 开始指导大三学生。
  15. 使用Python获取股市融资融券数据并绘制曲线
  16. NOT EXISTS真的不走索引么?如何优化NOT EXISTS!
  17. SQL 查询排名,相同数据排名相同
  18. 这是一个关于女码农减肥的思考
  19. 全球DAG区块链联盟会议——问答(一)
  20. 2020年淘客怎么样?

热门文章

  1. python求残差_用Python计算Pearson标准残差
  2. 前端 禁止微信调整字体大小
  3. 【物联网开发基础】plc简介
  4. 微信开放平台申请网站应用
  5. 《邪不压正》里面究竟谁是真正的隐侠,蓝青峰究竟是正是邪?
  6. yolov5s-6.0网络模型结构图
  7. 上海交通大学计算机专业考研多少分进复试,2019考研:初试分数370+,有希望进上海交通大学么?...
  8. 企业电子邮箱的地址格式
  9. linux中使用rpm命令详解
  10. 蚂蚁迷宫—有限状态机设计(ANT MAZE)