演算の順序で簡単な電卓を作ろうとしています。インターネットで読んだところ、RPN (逆ポーランド記法) のアルゴリズムを見つけました。
編集:
例を見てみましょう: 2 * 5 - 3 + 4
わかりました、あなたの両方が言ったように、今すぐチェックしてください:
proc は、数値と演算の両方の文字列配列です。プロシージャは {2, *, 5, -, 3, +, 4} になります
これはコードです:
int tempt = 0;
Stack <Double> stc = new Stack <Double>();
while (tempt < proc.length)
{
try
{
Double num = Double.parseDouble(proc[tempt]);
stc.push(num);
tempt++;
}
catch (Exception e)
{
char [] stcs = proc[tempt].toCharArray();
switch (stcs[0])
{
case '+':
{
double a2 = stc.pop();
double a1 = stc.pop();
stc.push(a1 + a2);
tempt++;
break;
}
case '-':
{
double a2 = stc.pop();
double a1 = stc.pop();
stc.push(a1 - a2);
tempt++;
break;
}
case 'x':
{
double a2 = stc.pop();
double a1 = stc.pop();
stc.push(a1 * a2);
tempt++;
break;
}
case '÷':
{
double a2 = stc.pop();
double a1 = stc.pop();
stc.push(a1 / a2);
tempt++;
break;
}
}
}
まだ機能しない
どうすればそれを機能させることができますか?助けてください!