
正文
java输入公式的代码 java如何输入数学公式
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
用Java语言编写求解一元二次方程的解,方程系数从键盘输入若a为零输出
1)简介
一元二次方程 ax2+bx+c=0 的a、b、c三个参数由用户自行定义,通过该程序输出该一元二次方程的根。
对于该程序需要在“应声虫”的基础上进行参数的自定义,在定义完成后需要通过求根公式实现结果的输出,其中Math.sqrt()为对括号的内容进行开平方根。
2)任务代码
关于该程序的代码如下:
import java.util.Scanner;//导入java.util包下的Scanner类
public class Test2{//类名
public static void main(String[] args) {//程序主入口函数,带命令行参数
System.out.print("求ax^2+bx+c=0的根"+"\n");//输出标题
Scanner in=new Scanner(System.in);//创建scanner,控制台会一直等待输入,直到敲回车结束
System.out.print("请输入a的值:");//输出“提示”
int a=in.nextInt();//用户可自行定义a的值
System.out.print("请输入b的值:");//输出“提示”
int b=in.nextInt();//用户可自行定义b的值
System.out.print("请输入c的值:");//输出“提示”
int c=in.nextInt();//用户可自行定义c的值
double x1=((-b+Math.sqrt(b*b-4*a*c))/(2*a));//运用求根公式,并且Math.sqrt()为开平方根
double x2=((-b-Math.sqrt(b*b-4*a*c))/(2*a));//运用求根公式,并且Math.sqrt()为开平方根
System.out.print("x1="+x1+"\n"+"x2="+x2);//输出两个根的结果
}
}
3)运行结果
使用LICEcap进行动图的制作,运行结果动图如下:
相关问答
Q1: 用java求下面这个公式,编码怎么写啊
public class A{
public A(){}
public double likethis(){
//int NumberofTests=10000;
double plus=0;
double minus=0;
for(int i=0;i=NumberofTests;i++){
plus=plus+1.0/(4*i+1);
minus=minus+1.0/(4*i+3);
//这样相当于有两万项java输入公式的代码,可以自已改
}
return 4.0*(plus-minus);
}
public static void main(String[] args){
System.out.println(new A().likethis());
}
}
至于楼上:
i=NumberofTests
a/b要注明分别为double…否则为0
-------------
没问题java输入公式的代码,java输入公式的代码我发贴时就一个回复java输入公式的代码,一下就全出来……
Q2: 如何用java计算一个圆的面积和周长?
一、数学公式:
圆周长=2*π*半径
面积=π*半径²
二、算法分析:
周长和面积都依赖半径,所以要先输入半径值,然后套用公式,计算周长和面积。 最终输出结果即可。
三、参考代码:
代码如下
#include "stdio.h"
#define Pi 3.14
void main()
{
float r,c,area;
printf("请输入圆的半径:");
scanf("%f",r);
c=2*Pi*r;
area=Pi*r*r;
printf("该圆的周长是%.2f,面积是%.2f\n",c,area);
}
Q3: 如何用java程序编写复杂的计算公式程序
下面是代码!
import java.util.Scanner;
class NumCount
{
public static void main(String[] args)
{
Scanner in = new Scanner(System.in);
System.out.println("请输入你想累加的数的个数n:");
int sum=0;
int n;//n个数
n=in.nextInt();
for(int i=1;i=n;i++){
sum+=i;
System.out.print(i!=n?i + "+":i);
}
System.out.println("="+sum);
}
}
Q4: 用JAVA 根据计算公式pi²/6=1/1²+1/2²+1/3²+……+1/n²?
以下是使用 Java 编写的计算公式 pi²/6=1/1²+1/2²+1/3²+……+1/n² 的代码:
public class PiSquareOverSix {
public static void main(String[] args) {
int n = 1000000; // 计算公式的项数
double sum = 0.0;
for (int i = 1; i = n; i++) {
sum += 1.0 / (i * i);
}
double result = Math.sqrt(sum * 6);
System.out.println("计算结果为:" + result);
}
}
Q5: 输入运算公式 得到结果 java
通过栈实现,先用栈将中缀表达式转化为后缀表达式java输入公式的代码,然后再用栈计算后缀表达式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 MapString,Integer optrOrder;
static {
optrOrder=new HashMapString,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){
ListString 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 ListString lex(String sExpres){
ListString tokens=new ArrayListString();
//将表达式分割成符号序列
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 ListString toRpn(ListString tokens)
throws Exception{
ListString rpnList=new ArrayListString();
StackString optrStack=new StackString();
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(ListString rpnTokens)
throws Exception{
NumberFormat nf=NumberFormat.getInstance();
StackDouble numStack=new StackDouble();
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,
StackString optrStack,
ListString 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;
}
/*按优先级处理其java输入公式的代码他运算符java输入公式的代码,若当前运算符优先级较高
* 直接入栈java输入公式的代码,否则将栈中运算符出战直至栈顶运算符
* 低于当前运算符
*/
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,
StackDouble 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如何输入数学公式、java输入公式的代码的信息别忘了在本站进行查找喔。








