简单数学题
口/口口+口/口口+口/口口=1 其中每个口的值都介于1~9
但每个口的值都不相同
public class Perm { private int[] a = new int[10]; private void init(){ for(int i=1;i<=9;i++){ a[i]=i; } } private boolean juge(){ int k1 = a[1]*10+a[2]; int k2 = a[4]*10+a[5]; int k3 = a[7]*10+a[8]; int t1 =a[3]*k2*k3; int t2=a[6]*k1*k3; int t3=a[9]*k1*k2; boolean b = false; if(t1>t2&&t2>t3&&t1+t2+t3==k1*k2*k3) b=true; return b; } private void printNumber(){ for(int j=1;j<=9;j++){ System.out.print(a[j]+" "); } System.out.println(); } private void range(int index){ if(index==9&&juge()){ printNumber(); } else{ for(int i=index;i<=9;i++){ int k = index; swap(i,k); range(k+1); swap(i,k); } } } private void swap(int i, int j){ int temp =a[i]; a[i]=a[j]; a[j]=temp; } public static void main(String[] args) { Perm p = new Perm(); p.init(); p.range(2); } }运行了一下,速度不慢,我就不去优化了。结果为 1 2 9 3 4 5 6 8 7 ,也就是9/12+5/34+7/68=1