1. 程式人生 > >湊算式(全排列)

湊算式(全排列)

A+B/C+DEF/GHI=10
public class Main {
	static int count =0;
	public static void ls(int[] a,int start,int end){
		if(start==end){
			double x1=a[0];
			double x2=(a[1]*1.0/a[2]);	//一定不能用int型 否則得到結果會自動取整!!!答案會出錯都在分子上*1.0就不會有錯
			double x3=(a[3]*100+a[4]*10+a[5])*1.0/(a[6]*100+a[7]*10+a[8]);
			if(x1+x2+x3==10){
				count++;
			}
		}
		else{
			for(int i=start;i<=end;i++){
				int temp=a[i];
				a[i]=a[start];
				a[start]=temp;
				ls(a,start+1,end);
				temp=a[i];
				a[i]=a[start];
				a[start]=temp;
			}
		}
	}
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int[] a={1,2,3,4,5,6,7,8,9};
		ls(a,0,a.length-1);
		System.out.println(count);
	}
}