⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 do24.java

📁 算24点程序
💻 JAVA
字号:
/* * 运算24点的工具 * * Copyleft 2004 戴云杰 xdanger All Rights Reserved. * http://www.xdanger.com * * 使用方式: * 键入4个1-10的整数,即可显示所有结果等于24的计算方式 */import java.io.*;import java.lang.*;//import java.applet.Applet;//import java.awt.*;class Do24{    // 目标值    public final short DST_VALUE = ( short ) 24;    // 输入值列表    private short[] List = new short[4];    // 结果列表    private String[] Result = new String[1024];    // 结果总数    private short ResultNumber = 0;    // 构造函数    public Do24( short a, short b, short c, short d ){        this.List[0] = a;        this.List[1] = b;        this.List[2] = c;        this.List[3] = d;        this.Result = this.countIt();    }    // 主函数    public static void main( String[] args ){        short a = Short.parseShort( args[0] );        short b = Short.parseShort( args[1] );        short c = Short.parseShort( args[2] );        short d = Short.parseShort( args[3] );        Do24 o = new Do24( a, b, c, d );        o.printResult();    }    // 开始计算    public String[] countIt(){        for( short l1 = 0; l1 < 4 ; l1++ ){            short A;            A = this.List[l1];            for( short l2 = 0; l2 < 4 ; l2++){                int B = this.List[l2];                for( short l3 = 0; l3 < 4 ; l3++){                    int C = this.List[l3];                    for( short l4 = 0; l4<4 ; l4++){                        int D = this.List[l4];                        if( l1 != l2 && l2 != l3 && l3 != l4 && l4 != l1 && l1 != l3 && l2 != l4 ){                            if( A + B + C + D == this.DST_VALUE )                                this.putResult( A + "+" + B + "+" + C + "+" + D + "=" + this.DST_VALUE );                            if( A + B + C - D == this.DST_VALUE )                                this.putResult( A + "+" + B + "+" + C + "-" + D + "=" + this.DST_VALUE );                            if( A + B - C - D == this.DST_VALUE )                                this.putResult( A + "+" + B + "-" + C + "-" + D + "=" + this.DST_VALUE );                            if( A - B - C - D == this.DST_VALUE )                                this.putResult( A + "-" + B + "-" + C + "-" + D + "=" + this.DST_VALUE );                            if( A * B * C * D == this.DST_VALUE )                                this.putResult( A + "*" + B + "*" + C + "*" + D + "=" + this.DST_VALUE );                            if( A * B * C - D == this.DST_VALUE )                                this.putResult( A + "*" + B + "*" + C + "-" + D + "=" + this.DST_VALUE );                            if( A * B - C - D == this.DST_VALUE )                                this.putResult( A + "*" + B + "-" + C + "-" + D + "=" + this.DST_VALUE );                            if( A * B - C * D == this.DST_VALUE )                                this.putResult( A + "*" + B + "-" + C + "*" + D + "=" + this.DST_VALUE );                            if( A * B * C + D == this.DST_VALUE )                                this.putResult( A + "*" + B + "*" + C + "+" + D + "=" + this.DST_VALUE );                            if( A * B + C + D == this.DST_VALUE )                                this.putResult( A + "*" + B + "+" + C + "+" + D + "=" + this.DST_VALUE );                            if( A * B + C * D == this.DST_VALUE )                                this.putResult( A + "*" + B + "+" + C + "*" + D + "=" + this.DST_VALUE );                            if( A * B + C - D == this.DST_VALUE )                                this.putResult( A + "*" + B + "+" + C + "-" + D + "=" + this.DST_VALUE );                            if( A - B * C * D == this.DST_VALUE )                                this.putResult( A + "-" + B + "*" + C + "*" + D + "=" + this.DST_VALUE );                            if( A + B - C * D == this.DST_VALUE )                                this.putResult( A + "+" + B + "-" + C + "*" + D + "=" + this.DST_VALUE );                            if( A * B * (C + D) == this.DST_VALUE )                                this.putResult( A + "*" + B + "*(" + C + "+" + D + ")=" + this.DST_VALUE );                            if( A * B * (C - D) == this.DST_VALUE )                                this.putResult( A + "*" + B + "*(" + C + "-" + D + ")=" + this.DST_VALUE );                            if( A * (B + C + D) == this.DST_VALUE )                                this.putResult( A + "*(" + B + "+" + C + "+" + D + ")=" + this.DST_VALUE );                            if( A * (B + C - D) == this.DST_VALUE )                                this.putResult( A + "*(" + B + "+" + C + "-" + D + ")=" + this.DST_VALUE );                            if( A * (B - C - D) == this.DST_VALUE )                                this.putResult( A + "*(" + B + "-" + C + "-" + D + ")=" + this.DST_VALUE );                            if( A - B * (C + D) == this.DST_VALUE )                                this.putResult( A + "-" + B + "*(" + C + "+" + D + ")=" + this.DST_VALUE );                            if( A - B * (C - D) == this.DST_VALUE )                                this.putResult( A + "-" + B + "*(" + C + "-" + D + ")=" + this.DST_VALUE );                            if( A * (B + C) - D == this.DST_VALUE )                                this.putResult( A + "*(" + B + "+" + C + ")-" + D + "=" + this.DST_VALUE );                            if( A * (B + C) + D == this.DST_VALUE )                                this.putResult( A + "*(" + B + "+" + C + ")+" + D + "=" + this.DST_VALUE );                            if( A * (B - C) - D == this.DST_VALUE )                                this.putResult( A + "*(" + B + "-" + C + ")-" + D + "=" + this.DST_VALUE );                            if( A * (B - C) + D == this.DST_VALUE )                                this.putResult( A + "*(" + B + "-" + C + ")+" + D + "=" + this.DST_VALUE );                            if( (A + B) * (C - D) == this.DST_VALUE )                                this.putResult( "(" + A + "+" + B + ")*(" + C + "-" + D + ")=" + this.DST_VALUE );                            if( (A + B) * (C + D) == this.DST_VALUE )                                this.putResult( "(" + A + "+" + B + ")*(" + C + "+" + D + ")=" + this.DST_VALUE );                            if( (A - B) * (C - D) == this.DST_VALUE )                                this.putResult( "(" + A + "-" + B + ")*(" + C + "-" + D + ")=" + this.DST_VALUE );                            if( B != 0 && A > B && A % B == 0 ){                                if( A / B + C + D == this.DST_VALUE )                                    this.putResult( A + "/" + B + "+" + C + "+" + D + "=" + this.DST_VALUE );                                if( A / B + C - D == this.DST_VALUE )                                    this.putResult( A + "/" + B + "+" + C + "-" + D + "=" + this.DST_VALUE );                                 if( A / B - C - D == this.DST_VALUE )                                    this.putResult( A + "/" + B + "-" + C + "-" + D + "=" + this.DST_VALUE );                                if( A / B * C + D == this.DST_VALUE )                                    this.putResult( A + "/" + B + "*" + C + "+" + D + "=" + this.DST_VALUE );                                if( A / B + C * D == this.DST_VALUE )                                    this.putResult( A + "/" + B + "+" + C + "*" + D + "=" + this.DST_VALUE );                                if( A / B - C * D == this.DST_VALUE )                                    this.putResult( A + "/" + B + "-" + C + "*" + D + "=" + this.DST_VALUE );                                if( A / B * C - D == this.DST_VALUE )                                    this.putResult( A + "/" + B + "*" + C + "-" + D + "=" + this.DST_VALUE );                                if( A / B * C * D == this.DST_VALUE )                                    this.putResult( A + "/" + B + "*" + C + "*" + D + "=" + this.DST_VALUE );                                if( C * D - A / B == this.DST_VALUE )                                    this.putResult( C + "*" + D + "-" + A + "/" + B + "=" + this.DST_VALUE );                                if( C - D - A / B == this.DST_VALUE )                                    this.putResult( C + "-" + D + "-" + A + "/" + B + "=" + this.DST_VALUE );                                if( C + D - A / B == this.DST_VALUE )                                    this.putResult( C + "+" + D + "-" + A + "/" + B + "=" + this.DST_VALUE );                                if( C + D + A / B == this.DST_VALUE )                                    this.putResult( C + "+" + D + "+" + A + "/" + B + "=" + this.DST_VALUE );                                if( C * ( D - A / B) == this.DST_VALUE )                                    this.putResult( C + "*(" + D + "-" + A + "/" + B + ")=" + this.DST_VALUE );                                if( C * ( D + A / B) == this.DST_VALUE )                                    this.putResult( C + "*(" + D + "+" + A + "/" + B + ")=" + this.DST_VALUE );                                if( C * ( A / B - D) == this.DST_VALUE )                                    this.putResult( C + "*(" + A + "/" + B + "-" + D + ")=" + this.DST_VALUE );                                if( D != 0 && C > D && C % D == 0 ){                                    if( (A / B) + (C / D) == this.DST_VALUE )                                        this.putResult( "(" + A + "/" + B + ")+(" + C + "/" + D + "=" + this.DST_VALUE );                                    if( (A / B) - (C / D) == this.DST_VALUE )                                        this.putResult( "(" + A + "/" + B + ")-(" + C + "/" + D + "=" + this.DST_VALUE );                                    if( (A / B) * (C / D) == this.DST_VALUE )                                        this.putResult( "(" + A + "/" + B + ")*(" + C + "/" + D + "=" + this.DST_VALUE );                                    if( A / B / D + C == this.DST_VALUE )                                        this.putResult( A + "/" + B + "/" + D + "+" + C + "=" + this.DST_VALUE );                                    if( A / B / D - C == this.DST_VALUE )                                        this.putResult( A + "/" + B + "/" + D + "-" + C + "=" + this.DST_VALUE );                                    if( A / B / D * C == this.DST_VALUE )                                        this.putResult( A + "/" + B + "/" + D + "*" + C + "=" + this.DST_VALUE );                                }                            }                        }                    }                }            }        }        return this.Result;    }    // 打印结果    public void printResult(){        for( short i = 0; i < this.getResultNumber(); i++ )            System.out.print( this.Result[i] + '\n' );    }    // 放入结果列表    public void putResult( String result ){        this.Result[this.getResultNumber()] = result;        this.addResultNumber();    }    // 取得结果数目    public short getResultNumber(){        return this.ResultNumber;    }    // 设置结果数目    private void setResultNumber( short number ){        this.ResultNumber = number;    }    // 增加1个结果数目    private void addResultNumber(){        this.ResultNumber ++;    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -