Java解一元二次方程和四则运算

目录

 一、Java解一元二次方程

运行结果 

思路解析 

 二、Java四则运算

运行结果 

思路解析 


 一、Java解一元二次方程

package hello;
import java.util.Scanner;
public class hey {

	public static void main(String[] args) {
		
		double a,b,c;
		while(true) {
			System.out.println("请输入a:");
			Scanner sc=new Scanner(System.in);
			a=sc.nextDouble();
			System.out.println("请输入b:");
			Scanner sc1=new Scanner(System.in);
			b=sc.nextDouble();
			System.out.println("请输入c:");
			Scanner sc2=new Scanner(System.in);
			c=sc.nextDouble();
			if(b*b-4*a*c<0) {
				System.out.println("该方程无解");
				break;
			}
			else if(a==0&&b==0)
			{
				System.out.println("x任意解");
				break;
			}
			else {
				if(a==0) {
					System.out.println("x无解");
					break;
				}
				else {
				double X1=(-b+Math.sqrt(b*b-4*a*c))*1/(2*a);
				double X2=(-b-Math.sqrt(b*b-4*a*c))*1/(2*a);
				System.out.println("方程的根为:"+X1);
				System.out.println("方程的根为:"+X2);
				break;
				}
	}	
		}
	}
			}

运行结果 

 

思路解析 

首先要知道一元二次方程如何解,

一元二次方程求根公式是x=[-b±√(b^2-4ac)]/2a,标准形式为:ax²+bx+c=0(a≠0)。

一元二次方程求根公式

当Δ=b^2-4ac≥0时,x=[-b±(b^2-4ac)^(1/2)]/2a

当Δ=b^2-4ac<0时,x={-b±[(4ac-b^2)^(1/2)]i}/2a

因为a,b,c都为我们系统输入值,所以要用配方法来解这题

然后分情况讨论,把有几种可能的情况都要讨论进去,这样出现不符合要求的才不会报错

还有一点就是关于虚根的情况比较特殊,也需要单独拿出来考虑

理清逻辑,分门别类就行了

 二、Java四则运算

package hello;
import java.util.Scanner;
public class hello {
	static Scanner scanner = new Scanner(System.in);

	public static void main(String[] args) {
		int n = 0;
		int a, b;
		int sum = 0;
		System.out.println("输入要做的题目的数量:");
		n = scanner.nextInt();
		int[] op = new int[n];
		int[] s = new int[n];
		int[] result = new int[n];
		String[] questions = new String[n];
		for (int i = 0; i < n; i++) {
			op[i] = (int) (Math.random() * 4); // 运算符
			a = (int) (Math.random() * 89) + 10; // 数a
			b = (int) (Math.random() * 89) + 10; // 数b
			System.out.println(a + getOp(op[i]) + b + "=?");
			System.out.println("输入答案:");
			s[i] = scanner.nextInt(); // 输入的答案
			result[i] = jisuan(a, b, op[i]); // 正确答案
			if (s[i] == result[i]) {
				sum++;
			}
			questions[i] = a + getOp(op[i]) + b + "=" + result[i];
		}
		// 最后的输出
		System.out.println("你答对了" + sum + "道题,答错了" + (n - sum) + "道题");
		for (int i = 0; i < n; i++) {
			System.out.print(questions[i]);
			if (s[i] == result[i]) {
				System.out.println(",你的回答是" + s[i] + ",正确");
			} else {
				System.out.println(",你的回答是" + s[i] + ",错误");
			}
		}
	}

	// 获取运算符
	private static String getOp(int index) {
		String string = "";
		switch (index) {
		case 0:
			string = "+";
			break;
		case 1:
			string = "-";
			break;
		case 2:
			string = "*";
			break;
		case 3:
			string = "/";
			break;
		}
		return string;
	}

	// 计算答案
	private static int jisuan(int a, int b, int index) {
		int sum = 0;
		switch (index) {
		case 0:
			sum = a + b;
			break;
		case 1:
			sum = a - b;
			break;
		case 2:
			sum = a * b;
			break;
		case 3:
			sum = a / b;
			break;
		}
		return sum;
	}
}

运行结果 

 

思路解析 

这题主要是利于到了switch case循环,和for循环结合来进行解答。

首先要设置需要的变量,如果一开始不知道需要几个变量的话,可以先把必要的先设置了,比如运算的两个数,结果肯定是必需的。

然后就是结构怎么选择了,像这种多个类型的很容易联想到循环结构,反正编码就是不断尝试的过程,我们可以一步一步试

结合代码,就很好理解了

希望对你有帮助,下个见,谢谢。

猜你喜欢

转载自blog.csdn.net/m0_62029216/article/details/127189758