用My eclipse 做一个能算一元二次方程的java程序,老师给出了提示(下面图):但我还是不

2025-03-29 21:44:17
推荐回答(1个)
回答1:

如下实现:

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);
         for(int i=0;i         {
            System.out.println("第"+(i+1)+"个解:"+xs[i]);
         }
      }
   }
 
  /**
   * 解方程:标准格式ax^2+bx+c=0的解法,非标准格式需要转换
   * 返回: 空表示无解,否则返回长度为1或2的解数组
   */
   public static double[] solve(double a,double b,double c)
   {
      double delta=b*b-4*a*c;//b^2-4ac
      System.out.println(delta);
      if(delta>0)//两个解 
      {
         double[] xs=new double[2];
         double v=Math.sqrt(delta);
         xs[0]=(-b+v)/(2*a);
         xs[1]=(-b-v)/(2*a);
         return xs;
      }
      else if(delta==0D)//只有一个解
      {
         return new double[]{-b/(2*a)};
      }
      else//无解
         return null;
   }
}