找满足等式的匹配数对

/()()()+()()()=()()()
在上面的括号中填入0~9的数字,使得等式成立,但整个等式中不能有重复的数字。
按照前面三个圆圈中的数从小到大的顺序输出,对于前面相同的,再按照后面数从小到大的顺序。
另外对于103+469=572,虽然469+103=572也是成立的,但不输出这类的等式。
/

public class Main  {
	    public static void main(String[] args) {
	        JavaA();
	    }
	    private static void JavaA(){
	        int a,b,c,d,e,f,g,h,i;
	        for ( int m=100;m<1000;m++ )
	        {
	            for ( int n=100;n<1000;n++ )
	            {
	                for ( int o=100;o<1000;o++ )
	                {
	                    if ( (m+n)==o )
	                    {
	                        a = m/100;
	                        b = (m%100)/10;
	                        c = m-100*a-10*b;
	                        d = n/100;
	                        e = (n%100)/10;
	                        f = n-100*d-10*e;
	                        g = o/100;
	                        h = (o%100)/10;
	                        i = o-100*g-10*h;
	                        int[] arr = {a,b,c,d,e,f,g,h,i};
	                        boolean bol = 相同否(arr);
	                        if ( !bol ){if(m<n&&n<o)
	                            System.out.println(m+"+"+n+"="+o);
	                        }
	                    }
	                }
	            }
	        }
	 
	    }
	    private static boolean 相同否( int[] arr )
	    {
	        for ( int i=0;i<arr.length;i++ )
	        {
	            for ( int j=i+1;j<arr.length;j++ )
	            {
	                if ( arr[i]==arr[j] ){
	                    return true;
	                }
	            }
	        }
	        return false;
	    }
	 
	}

猜你喜欢

转载自blog.csdn.net/Yurken/article/details/89294318