在洛谷上看的题解,C语言版改为了Java。
package cn.itcast.girl.TheBlueCup;
import java.util.Scanner;
public class ImprovementsToCalculators {
static int k,b,x;
static int f=1,now=1,r=0;
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
int len = str.length();
int i=0;
char c,a = 'a';
while(i<len) {
c = str.charAt(i);
if(c=='-') {b+=now*f*x;x=0;f=-1;r=0;}
if(c=='+') {b+=now*f*x;x=0;f=1;r=0;}
if(c=='=') {b+=now*f*x;x=0;f=1;now=-1;r=0;}
if(c>='a'&&c<='z')
{
if(r==1)
{
k+=now*f*x;x=0;
}
else k+=now*f;
a=c;r=0;
}
if(c>='0'&&c<='9'){
String s = String.valueOf(c);
x=x*10+Integer.parseInt(s);
r=1;
}
i++;
}
b+=now*f*x;
double ans=(double)(-b*1.0/k);
if(ans==-0.0) ans=0;
System.out.printf("%c=%.3f",a,ans);
}
}
本文介绍了一个用Java实现的计算器改进方案,该方案能够解析简单的数学表达式并求解未知数的值。通过对输入字符串逐字符扫描,识别操作符和数字,并处理包含未知变量的等式。

369

被折叠的 条评论
为什么被折叠?



