2013年第四届蓝桥杯国赛试题及详解(Java本科A组)

1.标题:填算式

请看下面的算式:

(ABCD - EFGH) * XY = 900

每个字母代表一个0~9的数字,不同字母代表不同数字,首位不能为0。

比如,(5012 - 4987) * 36 就是一个解。

请找到另一个解,并提交该解中 ABCD 所代表的整数。

请严格按照格式,通过浏览器提交答案。
注意:只提交 ABCD 所代表的整数,不要写其它附加内容,比如:说明性的文字

6048

public class test {
    static int[] arr = {0,1,2,3,4,5,6,7,8,9};
    public static void main(String[] args) {
        dfs(0);
        
    }
    private static void dfs(int index) {
        if(index==arr.length){
            int A = 1000*arr[0]+100*arr[1]+10*arr[2]+arr[3];
            int B = 1000*arr[4]+100*arr[5]+10*arr[6]+arr[7];
            int C = 10*arr[8]+arr[9];
            if((A-B)*C==900) {
                System.out.println(A+"-"+B+"  * "+C+"=="+900);
            }
            return;
        }
        for(int i=index;i<arr.length;i++){
            swap(arr,index,i);
            dfs(index+1);
            swap(arr,i,index);
        }
    }
    private static void swap(int[] arr, int i, int index) {
        int t = arr[i];
        arr[i] = arr[index];
        arr[index] = t;
    }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容