首先,这是一个很简单的程序。因为题目中已经将系数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都在变换的话,那我又该怎么办呢?
本人也是初学者,在这方法也是遇到难题,在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.
好了,经过了上面几步的学习。在这里,我们将前两者联系起来即可。利用第一个求一元二次方程的公式。
并且利用应声虫的思想,将系数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 双精度,保持计算结果的精确。