第七届蓝桥B组java省赛凑算式

3、凑算式 (结果填空)

这个算式中A-I代表1-9的数字,不同的字母代表不同的数字。

比如:
6+8/3+952/714 就是一种解法,
5+3/1+972/486 是另一种解法。
这个算式一共有多少种解法?
注意:你提交应该是个整数,不要填写任何多余的内容或说明性文字。


暴力解决就行,全排列问题, 答案是29

public class test {
    public static int[] a = new int[10];
    public static int count = 0;
    public static void arrange(int i) {
        if (i == 10) {
            int DEF = a[4] * 100 + a[5] * 10 + a[6];
            int GHI = a[7] * 100 + a[8] * 10 + a[9];
            double result = a[1] + a[2]*1.0 / a[3] + DEF*1.0 / GHI;
            if (result == 10.0) {
                ++count;
            }
        } else {
            for (int j = i; j < 10; ++j) {
                int t = a[i];
                a[i] = a[j];
                a[j] = t;
                arrange(i + 1);
                int tt = a[i];
                a[i] = a[j];
                a[j] = tt;
            }
        }
    }

    public static void main(String[] args) {
        for (int i = 1; i < 10; ++i) {
            a[i] = i;
        }
        arrange(1);
        System.out.println(count);
    }
}
========================================Talk is cheap, show me the code=======================================
posted @ 2018-03-30 10:30  绿叶萌飞  阅读(156)  评论(0编辑  收藏  举报