package test;

public class 填算式 {
    static int count=0;
    public static void main(String arg[])
    {
        char[] num="123456789".toCharArray();
        Dfs(num,0,8);
         System.out.println(count);
    }

    private static void Dfs(char[] num, int step, int end) {
        // TODO Auto-generated method stub
        if(step==end)
        {
            if(check(num))
            {
                count++;
                //System.out.println(num[0] + "" + num[1] + "" + num[2] + "+" + num[3] + "" + num[4] + "" + 
                //num[5] + "=" + num[6] + "" + num[7] + "" + num[8]);
            }
        }
        for(int i=step;i<=end;i++)
        {
            Swap(num,i,step);
            Dfs(num,step+1,end);
            Swap(num,i,step);
        }
    }

    private static void Swap(char[] num, int i, int step) {
        // TODO Auto-generated method stub
        char temp=num[i];
        num[i]=num[step];
        num[step]=temp;
    }

    private static boolean check(char[] a) {
        // TODO Auto-generated method stub
        int[] num=new int[9];
        for(int i=0;i<9;i++)
        {
            num[i]=a[i]-'0';
        }
        if(100*num[0]+10*num[1]+num[2]+100*num[3]+10*num[4]+num[5]==100*num[6]+10*num[7]+num[8])
            return true;
        return false;
    }

}