JAVA中如何输入系数和对于一元二次方程的解法的浅谈

  • 编制一个java application应用程序,求3X2+4X-1=0的根

 首先,这是一个很简单的程序。因为题目中已经将系数a,b,c全部给出,这是只需要套用我们初中学过的公式

就可以。利用负b加减根号下b的平方减4ac 再除以2a即可。

这是我们可能为难,JAVA中 乘除我都会,但是根号我不会。这里我告诉你,根号可以利用 Math.sqrt()来做。

链接我们可以看戳这里

代码如下:

public class demo3 {
		public static void main(String args[]){
			double x1=(-4+Math.sqrt(4*4-4*3*(-1)))/(2*3);
			double x2=(-4-Math.sqrt(4*4-4*3*(-1)))/(2*3);
			System.out.println("3X2+4X-1=0的根是x1="+x1);
			System.out.println("3x2+4x-1=0的根是x2="+x2);
		}
}

我之前在看毕向东的JAVA视频时,他说过一句话特别好。

学会一个代码,你只能解决一个问题。学会一个方法,你可以解决一类问题。

这里我就想推下去,如果我今天解决的问题不是3X2+4X-1=0,系数a,b,c都在变换的话,那我又该怎么办呢?

  • JAVA中如何输入系数

本人也是初学者,在这方法也是遇到难题,在CSDN上进行查找来借鉴别人的经验,在这里我也通过我自己的经验希望可以让更多的人得到学习。

首先我们做个铺垫,我们都会输出。System.out.print()这是最最基础的语句。但是反过来,我们要在键盘上输入确实要比这个费点心思。

参照在这里 我以我自己的i理解来进行讲解。

首先,我们需要去先去尝试做一个,我们在键盘上输入什么,就输出什么的东西。貌似大家都讲应声虫。

好,那我们就将一下,应声虫的做法。

import java.util.Scanner;
public class ceshi1 {
	public static void main(String args[]){
		while(true){
			System.out.print("请输入信息:");//输出提示信息
            Scanner s=new Scanner(System.in);//创建scanner,控制台会一直等待输入,直到敲回车结束
            String str=s.nextLine();//定义字符串变量,并赋值为用户输入的信息
            System.out.println("用户输入的信息为:"+str);//输出结果和输入相同
	}
}
	}

首先,我们先说说Scanner.

Java.util.Scanner 是 Java5 的新特征,我们可以通过 Scanner 类来获取用户的输入。

语法是:

Scanner s = new Scanner(System.in);

而我们则是通过 Scanner 类的 next() 与 nextLine() 方法获取输入的字符串

这里,next() 与 nextLine()的区别根据我自己的理解是:

遇到空格的状态下,next就不能识别后边的字符串 ,但nextLine 却可以。

比如,同样是输入字符   confusion zz;

next的输出结果是: confusion

而 nextLine 的输出结果是: confusion zz

这就是最明显的区别。

详情我们可以参照:这里

好了,言归正传,我们在这里重新回到程序上来看。

之所以在我们键盘输入之后,我们还可以等系统输出后,继续输入,是因为while循环,我们定义的是一个死循环,一直是true.

  • JAVA一元二次方程计算器(ax2+bx+c=0)

好了,经过了上面几步的学习。在这里,我们将前两者联系起来即可。利用第一个求一元二次方程的公式。

并且利用应声虫的思想,将系数A,B,C依次输入进去。

代码如下:

import java.util.Scanner;
public class ceshi2 {
	public static void main(String args[]){
			System.out.println("求ax2+bx+c=0的根");
			Scanner s=new Scanner(System.in);
			System.out.println("请输入a");
			int a=s.nextInt();
			System.out.println("请输入b");
			int b=s.nextInt();
			System.out.println("请输入c");
			int c=s.nextInt();
			double x1=((-b+Math.sqrt(b*b-4*a*c))/(2*a));
			double x2=((-b-Math.sqrt(b*b-4*a*c))/(2*a));
			System.out.println(x1);
			System.out.println(x2);
			
	}
}

首先,先做个输出:求ax2+bx+c=0的根;

这里就要使用Scanner类

需要指出,这里使用int 型是因为,我们在键盘上输入的必然是系数,也就是字符,并非字符串,所以就不用String str。

使用double 双精度,保持计算结果的精确。

猜你喜欢

转载自blog.csdn.net/quyuquan2014/article/details/82117759
今日推荐