本帖最后由 andy2u 于 2010-02-28 17:50:47 编辑

解决方案 »

  1.   

    a,b,r,X之间只有一个是求知的是什么意思?
      

  2.   

    就是用Java写一段代码:其结果包含以下三种情况:1.未知数求解:16 + ? = 27 ;2.运算符求解:12 ? 5 = 7 ;3.运算结果求解:7 x 6 = ? . 就是得出问号(?)的值
      

  3.   


    打错了,a,b,r,X之间只有一个是未知的.
      

  4.   

    伪代码,用简单的IF语句来完成
    a X b = r// 解析式子 分得给 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){
    }
      

  5.   

    这道题是4元(abxr)已知3元求第未知元,不难 就是写起来比较麻烦而已,给你个我刚程序吧 呵呵  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;
    }
    }