62,620
社区成员
发帖
与我相关
我的任务
分享
public class test4 {
/**
* @param args
*/
public static void main(String[] args) {
// String a="3";
// String b="5";
// String r="15";
// int num=2;
// System.out.println("已知abr求x x为"+XX(a, "", b, r, num));
String a="4";
String x="*";
String b="6";
int num=4;
System.out.println("已知axb求r r为"+XX(a, x, b, "", num));
}
public static String XX(String a, String x, String b, String r, int num) {
// num表示要求a(1),x(2),b(3),r(4)中的哪个
String reString="";
int res=0;
if (num == 2) {
int aI=Integer.parseInt(a);
int bI=Integer.parseInt(b);
int rI=Integer.parseInt(r);
if(aI+bI==rI){
reString="+";
}else if(aI-bI==rI) {
reString="-";
}else if(aI*bI==rI){
reString="*";
}else if(aI/bI==rI){
reString="/";
}
} else {
switch (num) {
case 1: {//求a
int bI=Integer.parseInt(b);
int rI=Integer.parseInt(r);
res=getRes(bI,rI,x,1);
reString=String.valueOf(res);
}
break;
case 3: {//求b
int aI=Integer.parseInt(a);
int rI=Integer.parseInt(r);
res=getRes(aI,rI,x,3);
reString=String.valueOf(res);
}
break;
case 4: {
int aI=Integer.parseInt(a);
int bI=Integer.parseInt(b);
res=getRes(aI,bI,x,4);
reString=String.valueOf(res);
}
break;
default:
System.out.println("error!");
return "error";
}
}
return reString;
}
public static int getRes(int i,int j,String sign,int num)
{
//num表示是求abr 134 如果是求 a或b 则i表示a或b ,j表示 r
int res=0;
if(num==4) //求r i表示a,j表示b
{
if(sign.equals("+"))
{
res=i+j;
}else if(sign.equals("-")){
res=i-j;
}else if(sign.equals("*")){
res=i*j;
}else if(sign.equals("/")){
res=i/j;
}
}else if(num==3){ //求b i表示a j表示r
if(sign.equals("+"))
{
res=j-i;
}else if(sign.equals("-")){
res=i-j;
}else if(sign.equals("*")){
res=j/i;
}else if(sign.equals("/")){
res=i/j;
}
}else if(num==1){//求a i表示b j表示r
if(sign.equals("+"))
{
res=j-i;
}else if(sign.equals("-")){
res=i+j;
}else if(sign.equals("*")){
res=j/i;
}else if(sign.equals("/")){
res=j*i;
}
}
return res;
}
}
// 解析式子 分得给 a X b r赋值
if (运算符已知){
if(r 未知) r = calc(a, b, X);
else if (a 未知) a = calc(r, b, getInverseOp(X));//X的逆运算
else if (b 未知){
if(X == '+' || X == '*'){
b = calc(r, a, getInverseOp(X));
}else{
b = calc(r, a, X);
}
}
}
// 运算符未知
else{
for(char x : '+=*/'){
if(r == calc(a, b x){
X = x;
}
}
}
// 这个方法进行两个数的操作
double calc(double a, double c, char op){
}
// 这个方法获得OP的逆运算,+返回-,*返回/
double getInverseOp(char op){
}

