蓝桥杯javaB组--凑算式


凑算式

B DEF
A + --- + ------- = 10
C GHI

(如果显示有问题,可以参见【图1.jpg】)


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

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

这个算式一共有多少种解法?

注意:你提交应该是个整数,不要填写任何多余的内容或说明性文字。

/**
 * @author 余正红
 * 2019年12月6日  
 */
package 蓝桥杯真题;

import java.util.concurrent.CountDownLatch;

public class 凑算式
{

    /**
     * @param args
     */
    static int [] art = {1,2,3,4,5,6,7,8,9};
    static int [] brt = new int[9];

    public static int  count = 0;
    public static void print()//输出结果
    {
        for(int i=0;i<9;i++)
        {
            System.out.print(art[i]+" ");
        }
        System.out.println();
    }
    
    public static void sum()
    {
        int a = art[0];
        int b = art[1];
        int c = art[2];
        int def = art[3]*100+art[4]*10+art[5];
        int ghi = art[6]*100+art[7]*10+art[8];
        double sum = (double)a+((double)(b*ghi+c*def))/(c*ghi);//通分
        if(sum == 10.0)
        {
            print();//输出满足条件的式子
            count++;
        }
    }
    
    public static void swap(int size)//全排列
    {
        if(size == 0)
        {
            sum();
            return;
        }
        else {
            for(int i=0;i<=size;i++)
            {
                int t = art[i];
                art[i]=art[size];
                art[size] = t;
                swap(size-1);
                t = art[i];
                art[i] = art[size];
                art[size] = t;
                
            }
        }
    }
    
    public static void main(String[] args)
    {
        // TODO Auto-generated method stub
        swap(8);
        //print();
    }

}

猜你喜欢

转载自www.cnblogs.com/zkw123/p/11997398.html
今日推荐