蓝桥杯——凑算式(Java)

凑算式
在这里插入图片描述

这个算式中A~I 都代表是 [1,9]的数字,不同的字母代表不同的数字。

比如:
6+8/3+952/714 就是一种解法,
5+3/1+972/486 是另一种解法。

这个算式一共有多少种解法?
1,解决这个问题用暴力枚举的方法,每一次确定一个值的时候都判断是否与前面出现的数字重复。
2,注意的小点就是要给数字乘一个1.0,是数字变为浮点型,防止存在遗漏的数据,尽可能使分子乘以1.0。

public class Formula {
    //     B      DEF
    //A + --- + ------- = 10
    //     C      GHI
    //
    public static void main(String[] args) {
        int count = 0;
        for (int A = 1; A < 10; A++) {
            for (int B = 1; B < 10 ; B++) {
               if (A != B) {
                   for (int C = 1; C < 10; C++) {
                       if (A != C && B != C) {
                           for (int D = 1; D < 10; D++) {
                               if (D != A && D != B && D != C) {
                                   for (int E = 1; E < 10; E++) {
                                       if (E != A && E != B && E != C && E != D) {
                                           for (int F = 1; F < 10; F++) {
                                               if (F != A && F != B && F != C && F != D && F != E) {
                                                   for (int G = 1; G < 10; G++) {
                                                       if (G != A && G != B && G != C && G != D && G != E && G != F) {
                                                           for (int H = 1; H < 10; H++) {
                                                               if (H != A && H != B && H != C && H != D && H != E && H != F
                                                                       && H != G ) {
                                                                   for (int I = 1; I < 10; I++) {

                                                                       if ( I != A && I != B && I != C && I != D && I != E && I != F
                                                                               && I != G && I != H&&A + B * 1.0 / C + (D*100 + E *10 + F )* 1.0/(G *100 + H * 10+ I ) == 10.0) {
                                                                           count++;
                                                                           System.out.print("第"+count+"种:"+A +" " + B +" "+C+" "+ D+" "+E+" "+F+" "+G+" "+H+" "+I);
                                                                           System.out.println();
                                                                       }
                                                                   }
                                                               }
                                                           }
                                                       }
                                                   }
                                               }
                                           }
                                       }
                                   }
                               }
                           }
                       }
                   }
               }
            }
        }
        System.out.println("总共"+count+"种方法");
    }
}

发布了55 篇原创文章 · 获赞 85 · 访问量 5132

猜你喜欢

转载自blog.csdn.net/lzh_99999/article/details/102741174