算法设计与分析: 5-24 算m点问题

5-24 算m点问题


问题描述

给定 k 个正整数,用算术运算符“+”,“-”,“*”,“/”将这 k 个正整数连接起来,使最终的得数恰为 m。

对于给定的 k 个正整数,给出计算 m 的算术表达式。

数据输入:
第一行有 2 个正整数 k 和 m,表示给定 k 个正整数,且最终的得数恰为 m。接下来的 1 行中,有 k 个正整数。


Java

package Chapter5HuiSuFa;

import java.util.HashSet;
import java.util.Iterator;
import java.util.Scanner;
import java.util.Set;

public class SuanMDian {

    private static int kk,mm;

    private static double[] d;
    private static boolean found;

    private static Set<String> answer;
    private static double[][] r;

    public static void main(String[] args){
        Scanner input = new Scanner(System.in);

        while (true){
            kk = input.nextInt();
            mm = input.nextInt();

            r = new double[kk][kk+1];
            d = new double[kk+1];
            answer = new HashSet<>();

            for(int i=1; i<=kk; i++)
                d[i] = input.nextDouble();

            found = false;

            search(kk,d);

            Iterator<String> it = answer.iterator();
            while (it.hasNext()){
                System.out.println(it.next());
            }
            if(!found)
                System.out.println("No answer!");
        }
    }

    private static void search(int k, double[] d){
        int i,j,m,t;
        double a, b;
        double[] e = new double[kk+1];
        if(k == 1){
            if((int)((d[1]-mm)*10000) == 0){
                outanswer();
                found = true;
            }
        }else {
            for(i=1; i<=k-1; i++)
                for(j=i+1; j<=k; j++){
                    a = d[i];
                    b = d[j];
                    if(a < b) {double tmp=a;a=b;b=tmp;}
                    for(m=1,t=0; m<=k; m++)
                        if(m!=i && m!=j)
                            e[++t] = d[m];
                    r[kk+1-k][1] = a;
                    r[kk+1-k][3] = b;
                    r[kk+1-k][4] = -1;
                    for(m=1; m<=6; m++){
                        switch (m){
                            case 1: r[kk+1-k][4]=a+b; break;
                            case 2: r[kk+1-k][4]=a-b; break;
                            case 3: r[kk+1-k][4]=a*b; break;
                            case 4: if(b!=0) r[kk+1-k][4]=a/b; break;
                            case 5: if(a!=0) r[kk+1-k][4]=b/a; break;
                            case 6: r[kk+1-k][4]=b-a; break;
                        }
                        r[kk+1-k][2] = m;
                        if(r[kk+1-k][4] != -1){
                            e[t+1] = r[kk+1-k][4];
                            search(k-1,e);
                        }
                    }
                }
        }
    }

    private static void outanswer(){
        StringBuffer msg = new StringBuffer();
        for(int i=1; i<kk; i++){
            switch ((int)(r[i][2])){
                case 1: msg.append(((r[i][1]<0)?"(":"")+r[i][1]+((r[i][1]<0)?")":"")+"+"+((r[i][3]<0)?"(":"")+r[i][3]+((r[i][3]<0)?")":"")); break;
                case 2: msg.append(((r[i][1]<0)?"(":"")+r[i][1]+((r[i][1]<0)?")":"")+"-"+((r[i][3]<0)?"(":"")+r[i][3]+((r[i][3]<0)?")":"")); break;
                case 3: msg.append(((r[i][1]<0)?"(":"")+r[i][1]+((r[i][1]<0)?")":"")+"*"+((r[i][3]<0)?"(":"")+r[i][3]+((r[i][3]<0)?")":"")); break;
                case 4: msg.append(((r[i][1]<0)?"(":"")+r[i][1]+((r[i][1]<0)?")":"")+"/"+((r[i][3]<0)?"(":"")+r[i][3]+((r[i][3]<0)?")":"")); break;
                case 5: msg.append(((r[i][3]<0)?"(":"")+r[i][3]+((r[i][3]<0)?")":"")+"/"+((r[i][1]<0)?"(":"")+r[i][1]+((r[i][1]<0)?")":"")); break;
                case 6: msg.append(((r[i][3]<0)?"(":"")+r[i][3]+((r[i][3]<0)?")":"")+"-"+((r[i][1]<0)?"(":"")+r[i][1]+((r[i][1]<0)?")":"")); break;
            }
            msg.append("="+r[i][4]+"; ");
        }
        String ans = new String(msg);
        if(!answer.contains(ans))
            answer.add(ans);
    }
}

Input & Output

5 125
2 2 12 3 7
7.0*3.0=21.0; 21.0*12.0=252.0; 252.0-2.0=250.0; 250.0/2.0=125.0; 
12.0*3.0=36.0; 36.0*7.0=252.0; 252.0-2.0=250.0; 250.0/2.0=125.0; 
12.0*7.0=84.0; 84.0*3.0=252.0; 252.0-2.0=250.0; 250.0/2.0=125.0; 


5 24
2 2 12 3 7
12.0*7.0=84.0; 2.0*2.0=4.0; 84.0/3.0=28.0; 28.0-4.0=24.0; 
2.0-12.0=-10.0; 7.0*(-10.0)=-70.0; 2.0-(-70.0)=72.0; 72.0/3.0=24.0; 
12.0*7.0=84.0; 84.0/3.0=28.0; 2.0*2.0=4.0; 28.0-4.0=24.0; 
2.0*2.0=4.0; 4.0/12.0=0.3333333333333333; 7.0/0.3333333333333333=21.0; 21.0+3.0=24.0; 
2.0/7.0=0.2857142857142857; 2.0*0.2857142857142857=0.5714285714285714; 12.0/0.5714285714285714=21.0; 21.0+3.0=24.0; 
12.0*3.0=36.0; 7.0*2.0=14.0; 36.0-14.0=22.0; 22.0+2.0=24.0; 
2.0/12.0=0.16666666666666666; 2.0*0.16666666666666666=0.3333333333333333; 7.0/0.3333333333333333=21.0; 21.0+3.0=24.0; 
12.0+2.0=14.0; 14.0*2.0=28.0; 3.0-7.0=-4.0; 28.0+(-4.0)=24.0; 
3.0/7.0=0.42857142857142855; 12.0/0.42857142857142855=28.0; 2.0+2.0=4.0; 28.0-4.0=24.0; 
12.0+2.0=14.0; 7.0-3.0=4.0; 14.0*2.0=28.0; 28.0-4.0=24.0; 
7.0/2.0=3.5; 3.5/2.0=1.75; 12.0*1.75=21.0; 21.0+3.0=24.0; 
2.0+2.0=4.0; 4.0/7.0=0.5714285714285714; 12.0/0.5714285714285714=21.0; 21.0+3.0=24.0; 
2.0-12.0=-10.0; 2.0*(-10.0)=-20.0; 7.0-(-20.0)=27.0; 27.0-3.0=24.0; 
7.0*2.0=14.0; 12.0/2.0=6.0; 14.0-6.0=8.0; 8.0*3.0=24.0; 
3.0/12.0=0.25; 7.0/0.25=28.0; 2.0*2.0=4.0; 28.0-4.0=24.0; 
7.0+2.0=9.0; 3.0-9.0=-6.0; 2.0*(-6.0)=-12.0; 12.0-(-12.0)=24.0; 
7.0*2.0=14.0; 12.0*3.0=36.0; 36.0+2.0=38.0; 38.0-14.0=24.0; 
12.0+2.0=14.0; 14.0*2.0=28.0; 28.0-7.0=21.0; 21.0+3.0=24.0; 
3.0/2.0=1.5; 12.0*7.0=84.0; 2.0+1.5=3.5; 84.0/3.5=24.0; 
12.0/3.0=4.0; 7.0+4.0=11.0; 11.0*2.0=22.0; 22.0+2.0=24.0; 
2.0*2.0=4.0; 7.0/3.0=2.3333333333333335; 12.0*2.3333333333333335=28.0; 28.0-4.0=24.0; 
12.0*7.0=84.0; 2.0*2.0=4.0; 84.0/4.0=21.0; 21.0+3.0=24.0; 
12.0+2.0=14.0; 14.0*2.0=28.0; 7.0-3.0=4.0; 28.0-4.0=24.0; 
2.0*2.0=4.0; 3.0/7.0=0.42857142857142855; 12.0/0.42857142857142855=28.0; 28.0-4.0=24.0; 
7.0-2.0=5.0; 5.0/2.0=2.5; 3.0-2.5=0.5; 12.0/0.5=24.0; 
3.0/12.0=0.25; 2.0/2.0=1.0; 7.0-1.0=6.0; 6.0/0.25=24.0; 
12.0/2.0=6.0; 7.0*3.0=21.0; 6.0/2.0=3.0; 21.0+3.0=24.0; 
2.0*2.0=4.0; 7.0*3.0=21.0; 12.0/4.0=3.0; 21.0+3.0=24.0; 
3.0*2.0=6.0; 7.0-6.0=1.0; 12.0/1.0=12.0; 12.0*2.0=24.0; 
12.0*3.0=36.0; 2.0-36.0=-34.0; (-34.0)/2.0=-17.0; 7.0-(-17.0)=24.0; 
7.0*2.0=14.0; 12.0/3.0=4.0; 14.0*2.0=28.0; 28.0-4.0=24.0; 
12.0*7.0=84.0; 3.0/2.0=1.5; 2.0+1.5=3.5; 84.0/3.5=24.0; 
3.0-2.0=1.0; 1.0-7.0=-6.0; 2.0*(-6.0)=-12.0; 12.0-(-12.0)=24.0; 
3.0/2.0=1.5; 7.0/2.0=3.5; 3.5-1.5=2.0; 12.0*2.0=24.0; 
3.0/12.0=0.25; 2.0+2.0=4.0; 7.0/0.25=28.0; 28.0-4.0=24.0; 
12.0*7.0=84.0; 2.0+2.0=4.0; 84.0/3.0=28.0; 28.0-4.0=24.0; 
12.0-2.0=10.0; 10.0*2.0=20.0; 3.0-7.0=-4.0; 20.0-(-4.0)=24.0; 
12.0-2.0=10.0; 10.0*7.0=70.0; 70.0+2.0=72.0; 72.0/3.0=24.0; 
2.0+2.0=4.0; 7.0/4.0=1.75; 12.0*1.75=21.0; 21.0+3.0=24.0; 
12.0/2.0=6.0; 2.0/6.0=0.3333333333333333; 7.0/0.3333333333333333=21.0; 21.0+3.0=24.0; 
7.0*2.0=14.0; 12.0*3.0=36.0; 14.0-2.0=12.0; 36.0-12.0=24.0; 
7.0/2.0=3.5; 3.5-2.0=1.5; 3.0/1.5=2.0; 12.0*2.0=24.0; 
7.0/3.0=2.3333333333333335; 2.0+2.0=4.0; 12.0*2.3333333333333335=28.0; 28.0-4.0=24.0; 
3.0/2.0=1.5; 2.0+1.5=3.5; 12.0*7.0=84.0; 84.0/3.5=24.0; 
7.0-3.0=4.0; 2.0-12.0=-10.0; 2.0*(-10.0)=-20.0; 4.0-(-20.0)=24.0; 
12.0*7.0=84.0; 84.0/3.0=28.0; 2.0+2.0=4.0; 28.0-4.0=24.0; 
12.0/3.0=4.0; 2.0/2.0=1.0; 7.0-1.0=6.0; 6.0*4.0=24.0; 
2.0/2.0=1.0; 12.0/3.0=4.0; 7.0-1.0=6.0; 6.0*4.0=24.0; 
3.0*2.0=6.0; 12.0*2.0=24.0; 7.0-6.0=1.0; 24.0/1.0=24.0; 
7.0/2.0=3.5; 3.0/2.0=1.5; 3.5-1.5=2.0; 12.0*2.0=24.0; 
2.0+2.0=4.0; 4.0/12.0=0.3333333333333333; 7.0/0.3333333333333333=21.0; 21.0+3.0=24.0; 
12.0*2.0=24.0; 3.0*2.0=6.0; 7.0-6.0=1.0; 24.0/1.0=24.0; 
12.0/2.0=6.0; 7.0*6.0=42.0; 42.0/2.0=21.0; 21.0+3.0=24.0; 
7.0*3.0=21.0; 2.0*2.0=4.0; 12.0/4.0=3.0; 21.0+3.0=24.0; 
12.0/2.0=6.0; 7.0*2.0=14.0; 14.0-6.0=8.0; 8.0*3.0=24.0; 
12.0*7.0=84.0; 84.0/2.0=42.0; 42.0/2.0=21.0; 21.0+3.0=24.0; 
7.0/3.0=2.3333333333333335; 12.0*2.3333333333333335=28.0; 2.0*2.0=4.0; 28.0-4.0=24.0; 
7.0*2.0=14.0; 14.0*2.0=28.0; 12.0/3.0=4.0; 28.0-4.0=24.0; 
12.0-2.0=10.0; 10.0*2.0=20.0; 7.0-3.0=4.0; 20.0+4.0=24.0; 
12.0*3.0=36.0; 7.0*2.0=14.0; 14.0-2.0=12.0; 36.0-12.0=24.0; 
7.0/2.0=3.5; 12.0/2.0=6.0; 6.0*3.5=21.0; 21.0+3.0=24.0; 
3.0/2.0=1.5; 2.0+1.5=3.5; 7.0/3.5=2.0; 12.0*2.0=24.0; 
2.0*2.0=4.0; 12.0*7.0=84.0; 84.0/4.0=21.0; 21.0+3.0=24.0; 
3.0*2.0=6.0; 7.0-6.0=1.0; 1.0/12.0=0.08333333333333333; 2.0/0.08333333333333333=24.0; 
3.0-7.0=-4.0; 12.0+2.0=14.0; 14.0*2.0=28.0; 28.0+(-4.0)=24.0; 
7.0/2.0=3.5; 3.5-2.0=1.5; 1.5/12.0=0.125; 3.0/0.125=24.0; 
12.0/3.0=4.0; 7.0*2.0=14.0; 14.0*2.0=28.0; 28.0-4.0=24.0; 
12.0*7.0=84.0; 84.0/3.0=28.0; 28.0-2.0=26.0; 26.0-2.0=24.0; 
12.0+2.0=14.0; 3.0-7.0=-4.0; 14.0*2.0=28.0; 28.0+(-4.0)=24.0; 
7.0-3.0=4.0; 12.0+2.0=14.0; 14.0*2.0=28.0; 28.0-4.0=24.0; 
2.0+2.0=4.0; 7.0*3.0=21.0; 12.0/4.0=3.0; 21.0+3.0=24.0; 
12.0-2.0=10.0; 3.0-7.0=-4.0; 10.0*2.0=20.0; 20.0-(-4.0)=24.0; 
12.0*3.0=36.0; 7.0*2.0=14.0; 14.0-36.0=-22.0; 2.0-(-22.0)=24.0; 
12.0-2.0=10.0; 7.0-3.0=4.0; 10.0*2.0=20.0; 20.0+4.0=24.0; 
12.0*3.0=36.0; 36.0+2.0=38.0; 7.0*2.0=14.0; 38.0-14.0=24.0; 
2.0*2.0=4.0; 12.0*7.0=84.0; 84.0/3.0=28.0; 28.0-4.0=24.0; 
3.0/7.0=0.42857142857142855; 2.0*2.0=4.0; 12.0/0.42857142857142855=28.0; 28.0-4.0=24.0; 
2.0/2.0=1.0; 3.0/12.0=0.25; 7.0-1.0=6.0; 6.0/0.25=24.0; 
2.0/2.0=1.0; 7.0-1.0=6.0; 12.0*6.0=72.0; 72.0/3.0=24.0; 
2.0/2.0=1.0; 7.0-1.0=6.0; 6.0/3.0=2.0; 12.0*2.0=24.0; 
12.0+2.0=14.0; 14.0*2.0=28.0; 28.0+3.0=31.0; 31.0-7.0=24.0; 
7.0*2.0=14.0; 12.0*3.0=36.0; 2.0-14.0=-12.0; 36.0+(-12.0)=24.0; 
2.0*2.0=4.0; 3.0/12.0=0.25; 7.0/0.25=28.0; 28.0-4.0=24.0; 
2.0*2.0=4.0; 12.0/4.0=3.0; 7.0*3.0=21.0; 21.0+3.0=24.0; 
2.0/7.0=0.2857142857142857; 12.0/0.2857142857142857=42.0; 42.0/2.0=21.0; 21.0+3.0=24.0; 
12.0-2.0=10.0; 10.0*2.0=20.0; 3.0-20.0=-17.0; 7.0-(-17.0)=24.0; 
7.0*2.0=14.0; 14.0-2.0=12.0; 12.0*3.0=36.0; 36.0-12.0=24.0; 
12.0-7.0=5.0; 5.0*2.0=10.0; 10.0-2.0=8.0; 8.0*3.0=24.0; 
7.0/3.0=2.3333333333333335; 12.0*2.3333333333333335=28.0; 2.0+2.0=4.0; 28.0-4.0=24.0; 
3.0/2.0=1.5; 2.0+1.5=3.5; 12.0/3.5=3.4285714285714284; 7.0*3.4285714285714284=24.0; 
3.0/12.0=0.25; 7.0/0.25=28.0; 28.0-2.0=26.0; 26.0-2.0=24.0; 
7.0/3.0=2.3333333333333335; 12.0*2.3333333333333335=28.0; 28.0-2.0=26.0; 26.0-2.0=24.0; 
2.0/2.0=1.0; 7.0-1.0=6.0; 12.0/3.0=4.0; 6.0*4.0=24.0; 
3.0/12.0=0.25; 2.0*2.0=4.0; 7.0/0.25=28.0; 28.0-4.0=24.0; 
7.0/2.0=3.5; 3.5-2.0=1.5; 1.5/3.0=0.5; 12.0/0.5=24.0; 
2.0/7.0=0.2857142857142857; 12.0/2.0=6.0; 6.0/0.2857142857142857=21.0; 21.0+3.0=24.0; 
12.0/3.0=4.0; 7.0*4.0=28.0; 2.0*2.0=4.0; 28.0-4.0=24.0; 
2.0+2.0=4.0; 12.0*7.0=84.0; 84.0/3.0=28.0; 28.0-4.0=24.0; 
12.0*3.0=36.0; 36.0-2.0=34.0; 34.0/2.0=17.0; 17.0+7.0=24.0; 
2.0+2.0=4.0; 3.0/12.0=0.25; 7.0/0.25=28.0; 28.0-4.0=24.0; 
12.0+2.0=14.0; 14.0*2.0=28.0; 7.0-28.0=-21.0; 3.0-(-21.0)=24.0; 
7.0/2.0=3.5; 3.5-2.0=1.5; 12.0/1.5=8.0; 8.0*3.0=24.0; 
2.0/3.0=0.6666666666666666; 7.0/12.0=0.5833333333333334; 0.6666666666666666-0.5833333333333334=0.08333333333333326; 2.0/0.08333333333333326=24.00000000000002; 
3.0*2.0=6.0; 12.0*2.0=24.0; 7.0-6.0=1.0; 24.0*1.0=24.0; 
3.0*2.0=6.0; 7.0-6.0=1.0; 12.0*2.0=24.0; 24.0/1.0=24.0; 
2.0/12.0=0.16666666666666666; 7.0/2.0=3.5; 3.5/0.16666666666666666=21.0; 21.0+3.0=24.0; 
12.0/2.0=6.0; 6.0/2.0=3.0; 7.0*3.0=21.0; 21.0+3.0=24.0; 
2.0-12.0=-10.0; 7.0-3.0=4.0; 2.0*(-10.0)=-20.0; 4.0-(-20.0)=24.0; 
2.0*2.0=4.0; 4.0/7.0=0.5714285714285714; 12.0/0.5714285714285714=21.0; 21.0+3.0=24.0; 
2.0-12.0=-10.0; 2.0*(-10.0)=-20.0; 3.0+(-20.0)=-17.0; 7.0-(-17.0)=24.0; 
3.0*2.0=6.0; 7.0-6.0=1.0; 1.0/2.0=0.5; 12.0/0.5=24.0; 
7.0-3.0=4.0; 12.0-2.0=10.0; 10.0*2.0=20.0; 20.0+4.0=24.0; 
7.0*2.0=14.0; 12.0*3.0=36.0; 36.0-14.0=22.0; 22.0+2.0=24.0; 
7.0*2.0=14.0; 12.0*3.0=36.0; 14.0-36.0=-22.0; 2.0-(-22.0)=24.0; 
12.0*3.0=36.0; 7.0*2.0=14.0; 36.0+2.0=38.0; 38.0-14.0=24.0; 
2.0-12.0=-10.0; 2.0*(-10.0)=-20.0; 7.0-3.0=4.0; 4.0-(-20.0)=24.0; 
2.0+2.0=4.0; 3.0/7.0=0.42857142857142855; 12.0/0.42857142857142855=28.0; 28.0-4.0=24.0; 
2.0+2.0=4.0; 7.0*4.0=28.0; 12.0/3.0=4.0; 28.0-4.0=24.0; 
7.0*3.0=21.0; 2.0+2.0=4.0; 12.0/4.0=3.0; 21.0+3.0=24.0; 
7.0+2.0=9.0; 9.0-3.0=6.0; 6.0*2.0=12.0; 12.0+12.0=24.0; 
12.0*2.0=24.0; 3.0*2.0=6.0; 7.0-6.0=1.0; 24.0*1.0=24.0; 
12.0*7.0=84.0; 2.0+2.0=4.0; 84.0/4.0=21.0; 21.0+3.0=24.0; 
12.0-2.0=10.0; 10.0*2.0=20.0; 20.0-3.0=17.0; 17.0+7.0=24.0; 
2.0+2.0=4.0; 12.0/3.0=4.0; 7.0*4.0=28.0; 28.0-4.0=24.0; 
2.0/2.0=1.0; 7.0-1.0=6.0; 3.0/6.0=0.5; 12.0/0.5=24.0; 
2.0/12.0=0.16666666666666666; 7.0/0.16666666666666666=42.0; 42.0/2.0=21.0; 21.0+3.0=24.0; 
7.0/12.0=0.5833333333333334; 2.0/3.0=0.6666666666666666; 0.6666666666666666-0.5833333333333334=0.08333333333333326; 2.0/0.08333333333333326=24.00000000000002; 
12.0/3.0=4.0; 2.0*2.0=4.0; 7.0*4.0=28.0; 28.0-4.0=24.0; 
2.0+2.0=4.0; 12.0*7.0=84.0; 84.0/4.0=21.0; 21.0+3.0=24.0; 
12.0/3.0=4.0; 7.0*4.0=28.0; 2.0+2.0=4.0; 28.0-4.0=24.0; 
7.0/2.0=3.5; 3.5-2.0=1.5; 12.0*3.0=36.0; 36.0/1.5=24.0; 
2.0/2.0=1.0; 7.0-1.0=6.0; 3.0/12.0=0.25; 6.0/0.25=24.0; 
2.0-7.0=-5.0; (-5.0)/2.0=-2.5; 3.0+(-2.5)=0.5; 12.0/0.5=24.0; 
7.0*3.0=21.0; 12.0/2.0=6.0; 6.0/2.0=3.0; 21.0+3.0=24.0; 
7.0/3.0=2.3333333333333335; 2.0*2.0=4.0; 12.0*2.3333333333333335=28.0; 28.0-4.0=24.0; 
3.0/12.0=0.25; 7.0/0.25=28.0; 2.0+2.0=4.0; 28.0-4.0=24.0; 
7.0/2.0=3.5; 12.0*3.0=36.0; 3.5-2.0=1.5; 36.0/1.5=24.0; 
3.0*2.0=6.0; 7.0-6.0=1.0; 2.0/1.0=2.0; 12.0*2.0=24.0; 
3.0-2.0=1.0; 7.0-1.0=6.0; 6.0*2.0=12.0; 12.0+12.0=24.0; 
3.0-7.0=-4.0; 2.0-(-4.0)=6.0; 6.0*2.0=12.0; 12.0+12.0=24.0; 
2.0+2.0=4.0; 12.0/4.0=3.0; 7.0*3.0=21.0; 21.0+3.0=24.0; 
7.0-3.0=4.0; 4.0+2.0=6.0; 6.0*2.0=12.0; 12.0+12.0=24.0; 
3.0/7.0=0.42857142857142855; 12.0/0.42857142857142855=28.0; 28.0-2.0=26.0; 26.0-2.0=24.0; 
7.0/2.0=3.5; 12.0*3.5=42.0; 42.0/2.0=21.0; 21.0+3.0=24.0; 
12.0/3.0=4.0; 7.0*4.0=28.0; 28.0-2.0=26.0; 26.0-2.0=24.0; 
7.0*2.0=14.0; 2.0-14.0=-12.0; 12.0*3.0=36.0; 36.0+(-12.0)=24.0; 
3.0-7.0=-4.0; 12.0-2.0=10.0; 10.0*2.0=20.0; 20.0-(-4.0)=24.0; 
3.0-7.0=-4.0; (-4.0)-2.0=-6.0; 2.0*(-6.0)=-12.0; 12.0-(-12.0)=24.0; 
3.0*2.0=6.0; 7.0-6.0=1.0; 2.0*1.0=2.0; 12.0*2.0=24.0; 
3.0*2.0=6.0; 7.0-6.0=1.0; 12.0*2.0=24.0; 24.0*1.0=24.0; 
12.0*3.0=36.0; 7.0*2.0=14.0; 2.0-14.0=-12.0; 36.0+(-12.0)=24.0; 
3.0*2.0=6.0; 7.0-6.0=1.0; 12.0*1.0=12.0; 12.0*2.0=24.0; 
3.0/7.0=0.42857142857142855; 12.0/0.42857142857142855=28.0; 2.0*2.0=4.0; 28.0-4.0=24.0; 
2.0*2.0=4.0; 7.0*4.0=28.0; 12.0/3.0=4.0; 28.0-4.0=24.0; 
12.0/2.0=6.0; 7.0/2.0=3.5; 6.0*3.5=21.0; 21.0+3.0=24.0; 
7.0/2.0=3.5; 2.0/3.5=0.5714285714285714; 12.0/0.5714285714285714=21.0; 21.0+3.0=24.0; 
2.0*2.0=4.0; 12.0/3.0=4.0; 7.0*4.0=28.0; 28.0-4.0=24.0; 
2.0*2.0=4.0; 7.0/4.0=1.75; 12.0*1.75=21.0; 21.0+3.0=24.0; 
12.0/2.0=6.0; 2.0/7.0=0.2857142857142857; 6.0/0.2857142857142857=21.0; 21.0+3.0=24.0; 
3.0/2.0=1.5; 2.0+1.5=3.5; 3.5/7.0=0.5; 12.0/0.5=24.0; 
3.0/2.0=1.5; 2.0+1.5=3.5; 3.5/12.0=0.2916666666666667; 7.0/0.2916666666666667=24.0; 
12.0*3.0=36.0; 7.0/2.0=3.5; 3.5-2.0=1.5; 36.0/1.5=24.0; 
2.0+2.0=4.0; 7.0/3.0=2.3333333333333335; 12.0*2.3333333333333335=28.0; 28.0-4.0=24.0; 
7.0/2.0=3.5; 2.0/12.0=0.16666666666666666; 3.5/0.16666666666666666=21.0; 21.0+3.0=24.0; 
12.0/3.0=4.0; 2.0+2.0=4.0; 7.0*4.0=28.0; 28.0-4.0=24.0; 
12.0-2.0=10.0; 10.0*2.0=20.0; 20.0+7.0=27.0; 27.0-3.0=24.0; 
3.0/7.0=0.42857142857142855; 2.0+2.0=4.0; 12.0/0.42857142857142855=28.0; 28.0-4.0=24.0; 

Reference

王晓东《计算机算法设计与分析》(第3版)P186

猜你喜欢

转载自blog.csdn.net/ioio_/article/details/81143640
今日推荐