java计算平方根方法问题

2025-04-03 16:13:46
推荐回答(1个)
回答1:

按照你的要求编写的Java程序如下

import java.util.ArrayList;
import java.util.List;
import javax.swing.JOptionPane;
public class MethodsForQuadratics { 
 public static void main(String[] args) {  
  JOptionPane.showMessageDialog(null,"This program is designed to calculate quadratic,calculating roots by entering coefficient A,B,and C");   
  try { 
   String userInput = JOptionPane.showInputDialog("Please define a coefficient A of a quadratic function");  
   double firstNumber = Double.parseDouble(userInput);  
   userInput = JOptionPane.showInputDialog("Please define a coefficient B of a quadratic function");  
   double secondNumber = Double.parseDouble(userInput);  
   userInput = JOptionPane.showInputDialog("Please define a coefficient C of a quadratic function");  
   double thirdNumber = Double.parseDouble(userInput);  
   List result= getQuadraticRoots1(firstNumber,secondNumber,thirdNumber);
   String str="";
   for(int i=0;i    Imaginary imaginary=result.get(i);
    if(imaginary.imaginary==0){
     str=str+imaginary.real+"\n";
    }else{
     if(imaginary.imaginary>0)
      str=str+imaginary.real+"+";
     else
      str=str+imaginary.real;
     str=str+imaginary.imaginary+"i\n";
    }
   }
   JOptionPane.showMessageDialog(null,"The first Quadratic,calculating root for A,B,C is:\n" + str);  
  } catch (Exception e) {    
   JOptionPane.showMessageDialog(null,"I'm sorry, it is not a valid input .");  
  } 
 }        
 public static List getQuadraticRoots1(double a, double b, double c){
  Listlist=new ArrayList();
  if (Math.sqrt(b*b-4*a*c)>=0) {
   Imaginary imaginary1=new Imaginary();
   imaginary1.real = (-b + Math.sqrt(b*b-4*a*c))/2*a;
   list.add(imaginary1);
   Imaginary imaginary2=new Imaginary();
   imaginary2.real = (-b - Math.sqrt(b*b-4*a*c))/2*a;
   list.add(imaginary2);
  }else {
   Imaginary imaginary1=new Imaginary();
   imaginary1.real = -b/2*a;
   imaginary1.imaginary=Math.sqrt(-(b*b-4*a*c))/2*a;
   list.add(imaginary1);
   Imaginary imaginary2=new Imaginary();
   imaginary2.real = -b/2*a;
   imaginary2.imaginary=-Math.sqrt(-(b*b-4*a*c))/2*a;
   list.add(imaginary2); 
  }        
  return list;    
 }
}
class Imaginary{
 double real;
 double imaginary;
}

运行结果