[quote="swimmer2000"]哪位解释下第二题的解题技巧吧![/quote]
遍历....
40以下的4种法码的重量
只有一种合适.
public class FourWight {
/**
* Method Description
*
* @param memberID memberID
* @return member member object
*/
int a =0;
int b =0;
int c =0;
int d =0;
public static void main(String[] args) {
System.out.println("start");
FourWight fw = new FourWight();
int i = 0 ;
while(true){
i++;
if(fw.getSelf()){
System.out.println(fw.a+"|"+fw.b+"|"+fw.c+"|"+fw.d);
break;
}else{
fw.a = i%40;
fw.b = (i/40)%40;
fw.c = (i/(40*40))%40;
fw.d = (i/(40*40*40))%40;
}
}
System.out.println("end");
}
public boolean get81times(int a,int b,int c,int d,int key){
int r = 1;
for(int i = 0 ; i < 3 ; i++){
for(int j=0 ; j <3;j++){
for(int k = 0 ; k <3 ; k++){
for(int q = 0 ; q <3 ;q++){
int f = a*(i-1)+b*(j-1)+c*(k-1)+d*(q-1);
if(key==f){
//System.out.println( f+"="+a+"*"+(i-1)+"+"+b+"*"+(j-1)+"+"+c+"*"+(k-1)+"+"+d+"*"+(q-1));
return true;
}
}
}
}
}
return false;
}
public boolean getSelf(){
for(int i =1 ;i<=40;i++){
if(!get81times(a,b,c,d,i)){
//System.out.println(i+"|"+a+b+c+d);
return false;
}
}
return true;
}
}
遍历....
40以下的4种法码的重量
只有一种合适.