如何用java编写一元二次方程的求根问题

java的思想就是类,敬请编程高手在此指教。
public class Fc{
int a,b,c;
double gen()
{double i;
double j=1.0;
double k=1.0;
i=b*b-4*a*c;
if(i>=0)
j=((-b)+Math.sqrt(i))/2*a;
k=((-b)-Math.sqrt(i))/2*a;
return(j);
}

public static void main(String[] args) {
Fc s=new Fc();
s.a=1;
s.b=5;
s.c=6;

System.out.println("j");
System.out.println("k");

}
}运行结果不是自己期望的。是字母j和k。前提是在一元二次方程a*x^2+b*x+c=0的b^2-4*a*c>=0时的俩根。可以把你的编程写上。谢谢!

public class SquareEquation {

double a, b, c;

public void setA(double a) {

this.a = a;

}

public void setB(double b) {

this.b = b;

}

public void setC(double c) {

this.c = c;

}

public double getRootOne() {

double disk = calculateValidDisk();

return (-b + Math.sqrt(disk)) / (2 * a);

}

public double getRootTwo() {

double disk = calculateValidDisk();

return (-b - Math.sqrt(disk)) / (2 * a);

}

private double calculateValidDisk() {

if (a == 0) {

throw new EquationException("不是二次方程", EquationException.NONE_EQUATION);

}

double disk = b * b - 4 * a * c;

if (disk < 0) {

throw new EquationException("没有实根", EquationException.NO_REALROOT);

}

return disk;

}

}

扩展资料

比如 方程是 x平方+3x+2=0;

public class Test

{

public static void main(String []args)

{

double a=1;//二次项系数

double b=3;//一次项系数

double c=2;//常数项

double s=b*b-4*a*c;

if(s<0)

{

System.out.print("b*b-4ac<0,方程无解!");

return;

}

double ss=Math.sqrt(s);

double x1=(-1*b-ss)/(2*a);

double x2=(-1*b+ss)/(2*a);

System.out.println("x1="+x1);

System.out.println("x2="+x2);

}

}

参考资料:百度百科 Java

百度百科 一元二次方程

温馨提示:内容为网友见解,仅供参考
第1个回答  2019-04-21

import java.util.Scanner;

public class 一元二次方程 {

public static void main(String[] args) {

System.out.println("请输入你一元二次方程的a,b,c");

Scanner input=new Scanner(System.in);

int a=input.nextInt();

int b=input.nextInt();

int c=input.nextInt();

double d=b*b-4*a*c;

double e,f;

if (d==0){

System.out.println("这是个完全平方");

e=f=-b/2*a;

System.out.print(e);

}

else if(d<0) {

System.out.println("无效根");

}

else {

System.out.println("这是个不完全平方,需要用求根公式");

double g=Math.sqrt(Math.abs(b));

e=-(b+g)/2*a;

f=-(e);

System.out.println("第一根是"+e);

System.out.println("第二根是"+f);

}

}

}

这是我的运行结果

扩展资料:

利用java编程解决数学上的解方程题,我们需要把方程求解的思路写出来,然后对应到每一步具体的求解步骤上。就比如解一元二次方程,需要我们把解方程的求根公式,判断式写出,最后用代码表示出来就好了。

需要注意的是,java中有特定的包和数学函数去求解数学问题,比如求根号可以用Math.sqrt()函数,求绝对值用Math.abs()函数


本回答被网友采纳
第2个回答  2019-03-26

首先需要清除数学上的求根公式,再写成java代码。

先创建方程类Fc,属性a,b,c分别代表一元二次方程的系数,两个有参和无参的构造方法Fc,一个求方程实数根的方法getRoot。

最后写main方法,用于测试程序,以下是代码,图片为运行结果截图。

public class Fc {

int a;

int b;

int c;

public Fc() {

super();

}

public Fc(int a, int b, int c) {

super();

this.a = a;

this.b = b;

this.c = c;

}

public String getRoot(){

int m = b*b-4*a*c;

if(m>=0){

double x1 = (-b + Math.sqrt(m))/(2*a);

double x2 = (-b - Math.sqrt(m))/(2*a);

return "x1="+x1+",x2="+x2;

}else{

return "没有实根.";

}

}

public static void main(String[] args) {

Fc fc = new Fc(1,5,6);

System.out.println(fc.getRoot());

}

}

扩展资料:

java中变量的定义:数据类型 变量名,如:int x;就是定义了一个int类型的变量x。如果不定义变量就直接使用,会报“cannot be resolved to a variable”错误,意思是无法解析为变量。

java中的类是一个模板,它描述一类对象的行为和状态,而对象是类的一个实例,有状态和行为,例如定义了一个Cat类,它有属性name和age,有无参构造方法Cat,有方法speak,表示该类的一个行为说话,代码如下:

public class Cat {

String name;

int age;

public Cat() {

super();

}

public void speak(){

System.out.println("喵喵喵!!!");

}

}

本回答被网友采纳
第3个回答  推荐于2019-08-01

错误解析

程序总体思想没有错,不过有一些小问题

1、输出语句中双引号包裹的代表原样输出:

这里需要去掉双引号

2、if语句,不写括号来注明代码块的情况下,只会把条件后一句当做代码块:

这里需要用大括号注明区域:

3、变量错误,输出的j和k为方法内定义,而不是在全局定义,而代码中却在另一个方法中调用:

这明显是调用不到的,不过可以把方法改成无返回值的void,然后在方法内输出值.

       

贴上修改后的代码:

#code:

#out:

拓展内容

java 函数的定义

习惯把函数也叫成方法,都是一个意思;函数是具备特定功能的一段代码块,解决了重复性代码的问题。

为什么要定函数呢?

目的是为了提高程序的复用性和可读性。

函数的格式

修饰符返回值类型函数名(形式参数类型1  参数名1,形式参数类型2  参数名2,形式参数类型3  参数名3......)

{

函数体语句;

return  返回值;

}

(1).修饰符:public 公共的static 静态的

(2).返回值类型:就是函数所实现的功能结果的数据类型。

(3).方法名:自己定义,符合标识符命名规则就行;驼峰命名规则 :单个单词首字母小写,多个单词后面的单词首字母大写。

(4).参数列表:即形式参数列表,用于接收实际参数。

(5).参数类型:参数的数据类型

(6).参数名:即变量名

(7).函数体语句:就是函数要完成的功能

(8).return:用来结束函数

(9).返回值:即这个函数的功能的结果 ,由return带回调用地方。

注意:void 表示不确定返回值类型,不能理解为没有返回值,只是返回值的类型不确定而已;

此外,返回值类型为void时,由于其返回值类型不能确定,故不能定义形式参数变量来接收;

当返回值类型为void时,return可以不写;但是当返回值类型为其他如int  String等时就必须写,否则编译会出错。

本回答被网友采纳
第4个回答  推荐于2017-09-12
public class Fc {
  int a, b, c;

  public void gen() {
    double i;
    double j = 1.0;
    double k = 1.0;
    i = b * b - 4 * a * c;
    if (i >= 0) {
      j = ((-b) + Math.sqrt(i)) / 2 * a;
      k = ((-b) - Math.sqrt(i)) / 2 * a;
    }
    System.out.println(j);
    System.out.println(k);
  }

  public static void main(String[] args) {
    Fc s = new Fc();
    s.a = 1;
    s.b = 5;
    s.c = 6;
    s.gen();
  }
}

java问题 一元二次方程求根
while(repeat>0){ a=in.nextInt();b=in.nextInt();c=in.nextInt();if 唯一根...你的输出和计算方法;else if 两个根,你的根和输出 else 没有根;repeat--;} 上面是伪代码的,你也有计算公式的,你应该可以把这个填充一下的

如何用java编写一元二次方程的求根问题
} public double getRootTwo() { double disk = calculateValidDisk();return (-b - Math.sqrt(disk)) \/ (2 * a);} private double calculateValidDisk() { if (a == 0) { throw new EquationException("不是二次方程", EquationException.NONE_EQUATION);} double disk = b * b - ...

用JAVA定义一个一元二次方程?
} else { System.out.println("方程无解");} } } 在main()方法中定义一个一元二次方程对象并调用求根方法,可以这样写:public static void main(String[] args) { \/\/ 创建一个一元二次方程对象 Equation eq = new Equation();\/\/ 设置系数 eq.setA(1);eq.setB(2);eq.setC(1);\/\/ ...

用Java语言编写求解一元二次方程的解,方程系数从键盘输入若a为零输出...
1)简介 一元二次方程 ax2+bx+c=0 的a、b、c三个参数由用户自行定义,通过该程序输出该一元二次方程的根。 对于该程序需要在“应声虫”的基础上进行参数的自定义,在定义完成后需要通过求根公式实现结果的输出,其中Math.sqrt()为对括号的内容进行开平方根。 2)任务代码 关于该程序的代码如下:i...

Java 如何编程实现一元二次方程的求解
\/\/求解一元二次方程ax^2+bx+c=0的实根和复根,Test类是主类 class OnceBasicQuadraticEquation \/\/求解一元二次方程ax^2+bx+c的实根和复根的类,其中getRoot()方法求根和显示根 { private double a; \/\/方程的二次项系数 private double b; \/\/方程的一次项系数 private static double...

跪求计算机JAVA大神用eclipse解一元二次方程,求答案,谢谢
\/\/ 程序主入口函数,带命令行参数public static void main(String[] args){System.out.print("求ax^2+bx+c=0的根" + "\\n");\/\/ 输出标题Scanner in = new Scanner(System.in);\/\/ 创建scanner,控制台会一直等待输入,直到敲回车结束System.out.print("请输入a的值:");\/\/ 输出“提示”...

java怎么求一元二次方程虚根,虚根i怎么定义啊。
当判别式<0,这个时候就产生虚根了,写起来比较麻烦,算法是这样的举个简单例子说明吧: 求一元二次方程:x^2+x+1=0的虚根 解:△=1^2-4×1×1=-3 由求根公式x=[-b±√(-△)i]\/2a =[-1±√(-△)i]\/2=[-1±√3i]\/23、NAN这个我写一下它的全称你就知道了no a number就是...

跪求计算机JAVA大神用eclipse解一元二次方程,求答案,基础一点,蟹蟹_百 ...
public class Test { public static void main(String[] args) throws Exception { \/\/ 标准格式: ax^2+bx+c=0 double[] xs=solve(4,4,0);\/\/这里参数即一元二次方程的三个系数a,b,c if(xs==null)System.out.println("解数:0");else { System.out.println("解数:"+xs.length);...

已知y=x的平方-5x+6用java编程求根
得出y>=-0.25估计你这y值肯定是大于0的,所以必然有两个不同解 百度百科:一元二次方程配方式:a(x+b\/2a)^2=(b^2-4ac)\/4a^2 得出x=b\/2a±根号下((b^2-4ac)\/4a^2)float a1=-5\/2;float a2=Math.sqrt((1+4y)\/4);float x1=a1+a2;float x2=a1-a2;x1和x2即为方程解 ...

newton法求方程的根的java程序???
牛顿迭代法就是二分法求根思想,根x在(a,b)间:1)取a,b的中c=(a+b)\/2,将根区间分两半,判断根在哪个区间。三种情况:2)f(c) <= 精度,C为求得根 3)if f(c)*f(a)<0,求根区间在[a,c],b=c,转1)4)if f(c)*f(a)>0,求根区间在[c,b],a=c,转1)double...

相似回答