用java解一元二次方程组

​
System.out.print("求 ax^2+bx+c=0的根"+"
");
		Scanner in=new Scanner(System.in); //定义变量
		while(true) {
		System.out.println("请输入a的值:");
		int a=in.nextInt();
		System.out.println("请输入b的值:");
		int b=in.nextInt();
		 System.out.println("请输入c的值:");
		 int c=in.nextInt();
		 double m=b*b-4*a*c; //定义方程式根号里的值为m
		 double x1,x2; //声明方程式的两个根为x1,x2
		if (m<0) {    //考虑方程式有无根的情况
			 System.out.println("方程无解");
		 }
		 else if (m==0){
			 System.out.println("方程有一个根"); 
			 System.out.println("x1="+(-b)/(2*a));
		 }
		 else if(m>0){
			 System.out.println("方程有两个根"); 
			 System.out.println("x1="+(-b)+Math.sqrt(m)/(2*a)); 
			 System.out.println("x2="+(-b)+Math.sqrt(m)/(2*a)); 
			 break;
		 }
		 }
	}

​

考虑一元二次方程组可能出现的三种情况

当b*b-4*a*c<0时则方程无解

当b*b-4*a*c==0时则方程只有一解

当b*b-4*a*c>0时则方程有两个解

定义一小数常量m=b*b-4*a*c

用while来实现计算循环(方程组执行的次数循环)

结尾处break用于结束本次循环

用if....else if...来考虑方程可能出现的三种情况

执行结果:

求 ax^2+bx+c=0的根 请输入a的值: 20 请输入b的值: 60 请输入c的值: 43 方程有两个根 x1=-600.31622776601683794 x2=-600.31622776601683794

经验分享 程序员 微信小程序 职场和发展