導航:首頁 > 編程語言 > java輸入方程

java輸入方程

發布時間:2021-12-07 10:09:40

java編程:輸入a,b,c,求方程 ax^2+bx+c=0 的解.(提示:可使用Math.pow()方法)

代碼供參考,有空多學習,祝好運
importjava.util.Scanner;
publicclassequation2{
publicstaticvoidmain(String[]args){
Scannersc=newScanner(System.in);
System.out.println("請輸入abc:");
doublea,b,c;
a=sc.nextDouble();
b=sc.nextDouble();
c=sc.nextDouble();
doubled=b*b-4*a*c;
if(d==0){
System.out.println("x="+(-b)/(2*a));
}
elseif(d<0){
System.out.println("無解");
}
else{
System.out.println("x1="+(-b+Math.sqrt(d))/(2*a));
System.out.println("x2="+(-b-Math.sqrt(d))/(2*a));
}
}
}

⑵ 【java】用戶輸入二元一次方程的三個系數,計算機求解二元一次方程。

最簡單的方法,沒有用到面向對象方法,只用了一個主類:
import java.util.Scanner;
import java.math.*;
public class Test{
public static void main(String[] args){
int a,b, c; //系數
double x1, x2;//方程解
Scanner s = new Scanner(System.in);
System.out.println("請輸入二元一次方程的第一個系數:");
a = s.nextInt();
System.out.println("請輸入二元一次方程的第二個系數:");
b = s.nextInt();
System.out.println("請輸入二元一次方程的第三個系數:");
c = s.nextInt(); //輸入系數
if(b*b > 4*a*c){
x1 = (- b + Math.sqrt(b*b - (4*a*c)))/2*a;
x2 = ( -b - Math.sqrt(b*b - (4*a*c)))/2*a;
System.out.println("方程解為x1= " + x1 + ", x2=" + x2); //求解方程根
}else if(b*b == 4*a*c){
x1 = (- b + Math.sqrt(b*b - (4*a*c)))/2*a;
System.out.println("方程有一個解 x1=x2=" + x1);
}else{
System.out.println("方程無解");
}
}
}

⑶ java 如何解方程

我估計需要你先手動操作。
雖然我不知道dp是啥但是我覺得這個可以化成n=XXX的代數式。專
然後調用java的算術和屬Math裡面的log之類的把結果算出來。
假如你是希望寫個java程序分析你的題目然後自己給出n=XXX的代數式然後再把它算出來的話,那就要比較麻煩了
-----------------
附,如果dp跟Dp是一樣的當做一個未知量的話那我可以幫你手動算算。
20=2*(1-r)²,那麼1-r=√10,然後帶入第三個式子得出n=log√10(1.25)
public class t{
public static void main(String[] args){
System.out.println(Math.log(1.25)/Math.log(Math.sqrt(10)));
}
}
然後算出來等於0.1938200260161128

⑷ 用Java求一元二次方程ax2+bx+c=0的根,要求a、b、c從控制台輸入

import java.util.Scanner;
public class Compare {

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);
System.out.println("請輸入a");
int a = sc.nextInt();
System.out.println("請輸入b");
int b = sc.nextInt();
System.out.println("請輸入c");
int c = sc.nextInt();

if(b*b - 4*a*c < 0){
System.out.println("對不起,無解!");
}else if(b*b - 4*a*c == 0){
System.out.println("此方程解x=" + -b/(2*a));
}else{
System.out.println("此方程解x1=" + ((-b+ "/"+ 2*a +"+√(" + (b*b - 4*a*c)) +")/" +(2*a)) + " , x2=" + ((-b+ "/"+ 2*a + "-√(" + (b*b - 4*a*c)) +")/" +(2*a)) );
}
}
}

⑸ 用Java解方程

建議用解非線性方程組的方法求解,fsolve()函數,先設定初值,知道解的大致的范圍後,再以此值為初值,在設定的精度下求解。用matlab解一道復雜的多元非線性方程組

⑹ 編寫一個java程序,從鍵盤輸入一元二次方程的3個系數a,b和c,輸出這個方程的解

publicstaticvoidmain(String[]args){
Scannerinput=newScanner(System.in);
inta=input.nextInt();
intb=input.nextInt();
intc=input.nextInt();
intx=0;
while(true){
if(a*x+b*x*x+c==42){
System.out.println("解得:x="+x);
break;
}
x=x+1;
}
}

這個就是個強行拿一個個數字去套這個方程,成功,即返回結果,如果方程無解,那這就是個死循環了。不清楚這題考的知識點,我猜想應該是考循環,所以這么寫的答案,不見得正確。另外,Java中平方可以用Math.pow(x,2)來表示x的平方。

⑺ 用JAVA編程求一元二次方程的根,一元二次方程的系數從鍵盤輸入

import java.util.Scanner;


public class Demo

{


public static void main(String [] args){

Scanner sc = new Scanner(System.in);

System.out.println("輸入2次方的系數");

int a = sc.nextInt();

System.out.println("輸入1次方的系數");

int b = sc.nextInt();

System.out.println("輸入0次方的系數");

int c = sc.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 + "," + x2);

}

}

⑻ JAVA 輸入參數a,b,c,求一元二次方程a*x*x+b*x+c=0的根,結果保留2位小數

package first;

import java.util.Scanner;

// 輸入abc 求出x a*x的2次方+b*x+c = 0
public class exercise161 {
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
int a = scan.nextInt();
int b = scan.nextInt();
int c = scan.nextInt();
int x = 0;
double s = Math.pow(b, 2) - 4 * a * c;
if(s > 0){
System.out.println( ((-1*b) + Math.sqrt(s)) /( 2 * a) );
System.out.println( ((-1*b) - Math.sqrt(s)) /( 2 * a) );
}else if(s == 0){
System.out.println( (-1*b) / ( 2 * a));
}else{
System.out.println("無解");
}
}
}

⑼ java 怎麼根據輸入的公式計算結果

深圳遠標為你解答這個問題
通過棧實現,先用棧將中綴表達式轉化為後綴表達式,然後再用棧計算後綴表達式的值的
package com.saturday;

import java.text.NumberFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Stack;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class MyParse {
static Map<String,Integer> optrOrder;
static {
optrOrder=new HashMap<String,Integer>();
optrOrder.put("(", 0);
optrOrder.put("*", 1);
optrOrder.put("/", 1);
optrOrder.put("%", 1);
optrOrder.put("+",2);
optrOrder.put("-",2);
optrOrder.put("^",3);
optrOrder.put("#",3);
}

public static void main(String[] args){
List<String> tokens;
try{
//詞法分析
tokens=lex("+2* (-2+3*4)+-5");

//中綴轉後綴
tokens=toRpn(tokens);

//計算結果
System.out.println(calcRpn(tokens));

}catch(Exception ex){
ex.printStackTrace();
}
}

/**
* 將輸入串轉換為操作符串
* @param sExpres
* @return
*/
public static List<String> lex(String sExpres){
List<String> tokens=new ArrayList<String>();

//將表達式分割成符號序列
String sRegExp="(((?<=^|\\(|\\+|-|\\*|/|%)(\\+|-))?\\d+(\\.\\d+)?)"
+"|\\(|\\)|\\*|/|\\+|-";
Pattern p=Pattern.compile(sRegExp);
Matcher m=p.matcher(sExpres.replaceAll("\\s+",""));
while(m.find()){
tokens.add(m.group());
}

tokens.add("#");

return tokens;
}

/**
* 將中綴表單時轉化為後綴表達式
* @param tokens
* @return
*/
public static List<String> toRpn(List<String> tokens)
throws Exception{
List<String> rpnList=new ArrayList<String>();
Stack<String> optrStack=new Stack<String>();

optrStack.add("^");
for(String token:tokens){
if(token.matches("^(\\+|-)?\\d+(\\.\\d+)?$")){
rpnList.add(token);
}else{
outputOptr(token,optrStack,rpnList);
}
}

if(!optrStack.isEmpty()
&&optrStack.lastElement().equals("#")){
return rpnList;
}else{
throw new Exception("後綴表達式轉化錯誤!");
}
}

/**
* 計算後綴表達式的值
* @param rpnTokens
* @return
* @throws Exception
*/
public static double calcRpn(List<String> rpnTokens)
throws Exception{
NumberFormat nf=NumberFormat.getInstance();
Stack<Double> numStack=new Stack<Double>();

for (String token : rpnTokens) {
if (token.matches("^(\\+|-)?\\d+(.\\d+)?$")) {
token=token.indexOf('+')==0
?token.substring(1)
:token;
numStack.add(nf.parse(token).doubleValue());
} else {
doCalcByOptr(token, numStack);
}
}

if (!numStack.isEmpty() && numStack.size() == 1) {
return numStack.lastElement();
} else {
throw new Exception("計算錯誤!");
}
}

/**
* 將運算符輸出到後綴表達式序列.
* @param optr
* @param optrStack
* @param rpnList
* @throws Exception
*/
public static void outputOptr(String optr,
Stack<String> optrStack,
List<String> rpnList)
throws Exception{
String preOptr;

if(optr.equals("(")){//處理左括弧
optrStack.push(optr);
return;
}

if(optr.equals(")")){//處理右括弧
while(!optrStack.isEmpty()){
preOptr=optrStack.pop();
if(!preOptr.equals("(")){
rpnList.add(preOptr);
}else{
break;
}
}

if(optrStack.isEmpty()){
throw new Exception("括弧未閉合!");
}

return;
}

/*按優先順序處理其他運算符,若當前運算符優先順序較高
* 直接入棧,否則將棧中運算符出戰直至棧頂運算符
* 低於當前運算符
*/
preOptr=optrStack.lastElement();
if(optrCmp(optr,preOptr)<0){
optrStack.push(optr);
}else{
while(!preOptr.equals("(")
&&!optrStack.isEmpty()
&&optrCmp(optr,preOptr)>=0){

preOptr=optrStack.pop();
if(!preOptr.equals("^")){
rpnList.add(preOptr);
}
}
optrStack.push(optr);
}
}

/**
* 運算符優先順序比較函數,optr1優先順序大於optr2返回小於0值,
* 優先順序相等返回0,optr1小於optr2返回大於0值.
* @param optr1
* @param optr2
* @return
*/
public static int optrCmp(String optr1,String optr2){
int order1=optrOrder.get(optr1);
int order2=optrOrder.get(optr2);
return order1-order2;
}

/**
* 根據運算符對數據棧中的內容進行操作.
* @param optr
* @param numStack
*/
public static void doCalcByOptr(String optr,
Stack<Double> numStack){
double n1,n2;
n2=numStack.pop();
n1=numStack.pop();

if(optr.equals("+")){
numStack.push(n1+n2);
}else if(optr.equals("-")){
numStack.push(n1-n2);
}else if(optr.equals("*")){
numStack.push(n1*n2);
}else if(optr.equals("/")){
numStack.push(n1/n2);
}else if(optr.equals("%")){
numStack.push(n1%n2);
}
}
}

⑽ 用JAVA求方程

弄清java的語法就可以了

(1) a * x * x + b * x + c

(2) (-b - Math.sqrt(b * b - 4 * a * c)) / (2 * a)

(3) x <= 10 && x >= 0

(4) 4 * x - 7 * y + 2 == a * b

(5) "廣東".equals(place) && "男".equals(sex)

閱讀全文

與java輸入方程相關的資料

熱點內容
歐美做鴨電影 瀏覽:504
遍歷本地文件內容 瀏覽:610
大數據互聯網測試 瀏覽:233
首營供應商提供哪些資料文件 瀏覽:386
經典風月影視 瀏覽:666
生孩子電影 瀏覽:667
iphone中音樂怎麼刪除 瀏覽:542
關於愛情韓劇電影免費觀看 瀏覽:941
無保qq申訴上保 瀏覽:215
蘋果6splussd卡 瀏覽:802
庫樂隊app顯示19是什麼意思 瀏覽:701
言言直播的官方網站是多少 瀏覽:340
啄木鳥十大電影女同天堂 瀏覽:507
iris女主扮演者 瀏覽:144
51自學網cor視頻教程 瀏覽:243
怎麼用ps把臉p黑教程 瀏覽:223
播放iso藍光原盤app有哪些 瀏覽:115
尋呼機地址碼編程是什麼意思 瀏覽:947
數據包安全未知為什麼解壓不出來 瀏覽:69
愛人女主角 瀏覽:623

友情鏈接