蓝桥杯 凑算式 Java全排列方法(递归)

题目:

     B      DEF

A + --- + ------- = 10
     C      GHI
     
(如果显示有问题,可以参见【图1.jpg】)
 
 
这个算式中A~I代表1~9的数字,不同的字母代表不同的数字。


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


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

public class SuanShiJieFa {
    static int num=0;
    public static void f1(int a[],int k){
        double q;
        double w;
        double e;
        if(k==a.length-1){
            q=a[0];
            w=a[1]*1.00/a[2];
            e=(a[3]*100+a[4]*10+a[5])*1.00/(a[6]*100+a[7]*10+a[8]);
            if(q+w+e==10)   {
                num++;
            }
        }
        for(int i=k;i<a.length;i++){
            {int temp=a[i];a[i]=a[k];a[k]=temp;}
            f1(a,k+1);
            {int temp=a[i];a[i]=a[k];a[k]=temp;}
        }
    }
    public static void main(String[] args) {
        int a[]=new int[]{1,2,3,4,5,6,7,8,9};
         f1(a,0);
         System.out.println(num);
    }
}


猜你喜欢

转载自blog.csdn.net/qq_34696236/article/details/79545662