早教吧作业答案频道 -->其他-->
英语翻译publicdoubleCalculator(Stringf)//计算{inti=0,j=0,k;charc;StringBuffers=newStringBuffer();s.append(f);s.append('=');Stringformula=s.toString();//转化为string类型char[]anArray;anArray=newchar[50];Stackmystack=newStack();w
题目详情
英语翻译
public double Calculator(String f)//计算
{
int i=0,j=0,k;
char c;
StringBuffer s=new StringBuffer();
s.append(f);
s.append('=');
String formula=s.toString();//转化为string类型
char[] anArray;
anArray=new char[50];
Stack mystack=new Stack();
while(formula.charAt(i)!='=')
{
c=formula.charAt(i);
switch(c)
{
case '+':
case '-':
while(!mystack.empty()&&mystack.peek().charValue()!='/')
{
anArray[j++]=mystack.pop().charValue();
}
mystack.push(new Character(c));
i++;
break;
case '*':
case '/':
while(!mystack.empty()&&(mystack.peek().charValue()=='*'||mystack.peek().charValue()=='/'))
{
anArray[j++]=mystack.pop().charValue();
}
mystack.push(new Character(c));
i++;
break;
default:while((c>='0'&&c
public double Calculator(String f)//计算
{
int i=0,j=0,k;
char c;
StringBuffer s=new StringBuffer();
s.append(f);
s.append('=');
String formula=s.toString();//转化为string类型
char[] anArray;
anArray=new char[50];
Stack mystack=new Stack();
while(formula.charAt(i)!='=')
{
c=formula.charAt(i);
switch(c)
{
case '+':
case '-':
while(!mystack.empty()&&mystack.peek().charValue()!='/')
{
anArray[j++]=mystack.pop().charValue();
}
mystack.push(new Character(c));
i++;
break;
case '*':
case '/':
while(!mystack.empty()&&(mystack.peek().charValue()=='*'||mystack.peek().charValue()=='/'))
{
anArray[j++]=mystack.pop().charValue();
}
mystack.push(new Character(c));
i++;
break;
default:while((c>='0'&&c
▼优质解答
答案和解析
一般你这种要出入栈的计算器是可以计算表达式的,如可以直接输入2-4*3+4,一般有两个栈,数字栈和符号栈,如上面表达式,数字栈压入2,4;符号栈压入-;当取*号的时候,因为*的优先级比-大所有会将4弹出和3运算然后将12压回数字栈,结果是2,12;符号栈是-;然后取+,比较+与-优先级,同级的从左都右运算,直接压入栈,数字栈为2,12,4;符号栈是-,+;遇到表达式结束符,然后弹出一个符号两个数,运算后将结果压回数字栈,弹出加号,结果是2,16;弹出减号是最终结果14;然后输出结果.要是有括号的可以递归括号内的表达式.详细可百度表达式的栈运算.程序我没看,很多又没格式.
看了 英语翻译publicdoub...的网友还看了以下:
证明:lima^(1/n)=1 n-->∞ (a为常数),limn^(1/n)=1 n-->∞,本 2020-05-13 …
对于非零自然数M和N,规定符号&的含义是:M&N=2*M*N分之A*M+N(A为一个确定的整数), 2020-05-16 …
///////证明 3^n-2^m=(2^k-3^n)a (n m k为自然数 a为大于的整数 n 2020-05-16 …
C语言n=3a=(n++)+(++n)a为什么等于8? 2020-06-12 …
1.已知数列{a(n)}满足a(n)a(n+1)a(n+2)a(n+3)=24,且a1=1a2=2 2020-07-09 …
如果132n(n是正整数)是一个自然数的平方,则n?a.为素数b.为合数c.不是素数也不是合数d. 2020-07-17 …
数列an,an=3^n+a为等比数列,求a,首相,公比 2020-07-30 …
解关于x的方程n,a为何值时,关于x的方程3(ax-2)-(x+1)=2(n/2+x)1.有为一解 2020-07-31 …
看不懂欧拉定理的意思,求救在数论中,欧拉定理,(也称费马-欧拉定理)是一个关于同余的性质.欧拉定理 2020-08-02 …
已知f(x)是定义在(-∞,+∞)上的不恒为零的函数且对于定义域内的任意x、y,f(x)都满足f(x 2020-11-10 …