import java.util.Scanner;
芦溪ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18980820575(备注:SSL证书合作)期待与您的合作!
public class 一元二次方程 {
public static void main(String[] args) {
System.out.println("请输入你一元二次方程的a,b,c");
Scanner input=new Scanner(System.in);
int a=input.nextInt();
int b=input.nextInt();
int c=input.nextInt();
double d=b*b-4*a*c;
double e,f;
if (d==0){
System.out.println("这是个完全平方");
e=f=-b/2*a;
System.out.print(e);
}
else if(d0) {
System.out.println("无效根");
}
else {
System.out.println("这是个不完全平方,需要用求根公式");
double g=Math.sqrt(Math.abs(b));
e=-(b+g)/2*a;
f=-(e);
System.out.println("第一根是"+e);
System.out.println("第二根是"+f);
}
}
}
这是我的运行结果
扩展资料:
利用java编程解决数学上的解方程题,我们需要把方程求解的思路写出来,然后对应到每一步具体的求解步骤上。就比如解一元二次方程,需要我们把解方程的求根公式,判断式写出,最后用代码表示出来就好了。
需要注意的是,java中有特定的包和数学函数去求解数学问题,比如求根号可以用Math.sqrt()函数,求绝对值用Math.abs()函数
package javaapplication1;
import java.util.Scanner;
public class testComplex {
public static void main(String[] args){
double x1=0,y1=0,x2=0,y2=0;
double b1=0,b2=0;
Scanner sc = new Scanner(System.in);
System.out.println("请输入复数C1的实部和虚部:");
x1 = sc.nextDouble();
y1 = sc.nextDouble();
System.out.println("请输入复数C2的实部和虚部:");
x2 = sc.nextDouble();
y2 = sc.nextDouble();
Complex C1=new Complex(x1,y1);
Complex C2=new Complex(x2,y2);
Complex C3=C1.add(C2);//C1+C2
Complex C4=C2.sub(C1);//C1-C2
b1=C3.imagPart;
b2=C4.imagPart;
if(y1=0)
System.out.println("复数C1:"+x1+"+"+y1+"i");
else
System.out.println("复数C1:"+x1+y1+"i");
if(y2=0)
System.out.println("复数C2:"+x2+"+"+y2+"i");
else
System.out.println("复数C2:"+x2+y2+"i");
if(b1=0)
{ System.out.println("复数C1+C2:"+(x1+x2)+"+"+(y1+y2)+"i");//直接运算
System.out.println("复数C1+C2:"+C3.realPart+"+"+C3.imagPart+"i");//调用函数
}
else
{ System.out.println("复数C1+C2:"+(x1+x2)+(y1+y2)+"i");//直接运算
System.out.println("复数C1+C2:"+C3.realPart+C3.imagPart+"i");//调用函数
}
if(b2=0)
{ System.out.println("复数C1-C2:"+(x1-x2)+"+"+(y1-y2)+"i");//直接运算
System.out.println("复数C1-C2:"+C4.realPart+"+"+C4.imagPart+"i");//调用函数
}
else
{
System.out.println("复数C1-C2:"+(x1-x2)+(y1-y2)+"i");//直接运算
System.out.println("复数C1-C2:"+C4.realPart+C4.imagPart+"i");//调用函数
}
}
}
class Complex//描述复数
{
public double realPart=0;//表示复数的实部
public double imagPart=0;//表示复数的虚部
public Complex(double real,double image)//定义构造函数
{
realPart=real;
imagPart=image;
}
Complex add(Complex fushu)//实现当前复数和参数复数fushu的加法
{
return new Complex(fushu.realPart+realPart,fushu.imagPart+imagPart);
}
Complex sub(Complex fushu)//实现当前复数和参数复数fushu的减法
{
return new Complex(fushu.realPart-realPart,fushu.imagPart-imagPart);
}
}
//方法很简单,就是控制虚部是符号很麻烦,顺便也把C1、C2也输出来了
public static void main(String[] args) {
int a=2,b=0,c=1,d=10000,e=0,f=1,g=3,h=10000,i=1,j=4,k=0,l=10000;
int x,y,z;
int m = f(a, b, c, e, f ,g, i, j, k);
int m1 = f(d, b, c, h, f, g, l, j, k);
int m2 = f(a, d, c, e, h, g, i, l, k);
int m3 = f(a, b, d, e, f, h, i, j, l);
x = m1/m;
y = m2/m;
z = m3/m;
System.out.println(x+ " " + y +" "+z);
}
public static int f(int a,int b,int c,int d,int e,int f,int g,
int h,int i){
return a*e*i+b*f*g+c*d*h-a*f*h-b*d*i-c*e*g;
}
概率是1/4,可以用java程序模拟一下:
import java.util.Random;
/*
* Rate.java
*
* Created on 2006年9月16日, 下午4:54
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
/**
*
* @author
*/
public class Rate {
/** Creates a new instance of Rate */
public Rate() {
}
/**
*三角形的第一点A随便放,第二点B的位置决定是锐角的概率,设C点为圆心,
*ABC为锐角的概率是:角ACB角度/360
*n值越大,越接近0.25
*/
public static double rate(int n){
Random random=new Random();
double rate=0;
for(int i=0;in;i++){
rate+=random.nextDouble()*180;
}
return rate/(n*360);
}
public static void main(String[] args) {
System.out.println("rate(200次): "+Rate.rate(200));
}
}
先分析规律,从第二行开始,每行4个,逆序顺序交替,末尾空一首位空一交替。
然后用for循环不断的书写这个数列,然后在数列中找到需要找的数字的位置,即这个数字所在索引。
下面为实现代码:
package baidu;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class MathList {
//数列的尽头
private static int max;
//要找到的数字
private static int bingo;
//最后一行的数字个数
private static int sizeoflastrow;
//行数
private static int rows;
//每行的排序方式,0为顺序,1为逆序
private static int order;
//排序后的数列
private static ListListString numbers = new ArrayListListString();
public static void main(String[] args) {
System.out.println("请输入最大数");
Scanner scan = new Scanner(System.in);
max = scan.nextInt();
System.out.println("请输入要找到的数字");
bingo = scan.nextInt();
scan.close();
//计算最后一行数字的个数及行数
if (max=5) {
sizeoflastrow = max%5;
rows = 1;
} else if (max5){
sizeoflastrow = (max-5)%4;
if (sizeoflastrow==0) {
rows = ((max-5)-(max-5)%4)/4+1;
} else {
rows = ((max-5)-(max-5)%4)/4+2;
}
}
System.out.println("行数为"+rows+"行");
System.out.println("最后一行数字的个数为"+sizeoflastrow+"个");
//为每行插入数据
for (int i = 0; i rows; i++) {
//计算此行是顺序还是逆序
order = i%2;
ListString listi = new ArrayListString();
//如果此行为第一行
if (i==0) {
for (int j = 0; j max j 5; j++) {
listi.add(new Integer(j+1).toString());
}
while (listi.size()5) {
listi.add("");
}
//如果此行为最后一行
} else if (i!=0 i==rows-1){
//如果此行是顺序
if (order == 0) {
//先插入一个空位
listi.add("");
//按顺序插入数字
for (int j = 0; j sizeoflastrow; j++) {
listi.add(new Integer(5+(i-1)*4+j+1).toString());
}
//末尾补足空位
for (int j = 0; j 4-sizeoflastrow; j++) {
listi.add("");
}
//如果此行是逆序
} else if (order == 1){
//先按逆序插入数字
for (int j = 0; j sizeoflastrow; j++) {
listi.add(new Integer(5+(i-1)*4+(4-j)).toString());
}
//末尾补足空位
for (int j = 0; j 5-sizeoflastrow; j++) {
listi.add("");
}
}
//如果此行既不是首行也不是末行
} else if (i!=0 i!=rows-1){
//如果此行是顺序
if (order == 0) {
//先插入一个空位
listi.add("");
//按顺序插入数字
for (int j = 0; j 4; j++) {
listi.add(new Integer(5+(i-1)*4+j+1).toString());
}
//如果此行是逆序
} else if (order == 1){
//先按逆序插入数字
for (int j = 0; j 4; j++) {
listi.add(new Integer(5+(i-1)*4+(4-j)).toString());
}
//末尾插入一个空位
listi.add("");
}
}
numbers.add(listi);
}
System.out.println("排序后数组输出为");
System.out.println("\tA\tB\tC\tD\tE");
for (int j = 0; j rows; j++) {
String s = (j+1)+"行\t"+numbers.get(j).get(0);
for (int k = 1; k 5; k++) {
s = s + "\t" + numbers.get(j).get(k);
}
System.out.println(s);
}
System.out.print("要找的数字\""+bingo+"\"在:");
for (int j = 0; j numbers.size(); j++) {
ListString list = numbers.get(j);
for (int j2 = 0; j2 5; j2++) {
if (list.get(j2).equals(new Integer(bingo).toString())) {
System.out.print("第"+(j+1)+"行,第"+(j2+1)+"列");
}
}
}
}
}