public class Points24 {public static void main(String[] args){
int [] FourNUM = {0,0,0,0};
int [] reArrange = {0,0,0,0};
int end;
int total = 0;
for(int i = 0 ; i < 4 ;i++){
FourNUM[i] = (int)Math.round(Math.random()*10);
if(FourNUM[i] == 0) {
FourNUM[i] = 10;
}
System.out.println("The " +(i+1)+ "Card Is : " + FourNUM[i]);
}
for(int I = 0; I < 4; I++){
reArrange[0] = FourNUM[I];
for(int J = 0; J < 4 ; J ++){
if (J != I){
reArrange[1] = FourNUM[J];
for(int K=0 ; K<4 ; K++){
if(K!= I && K!= J){
reArrange[2] = FourNUM[K];
for(int L = 0; L<4; L ++){
if(L != K && L!= J && L != I){
reArrange[3] = FourNUM[L];
//System.out.println(total + "::"+reArrange[0] +" "+ reArrange[1] +" "+ reArrange[2] +" "+ reArrange[3]);
Cac(reArrange);
total++;
}
}
}
}
}
}
}
}public static void Cac(int [] NUM){
float FinialNUM = 0;
String Str = "";
String Status = "";
String Operators1 ="" ,Operators2 ="",Operators3="";
for(int i = 0 ; i < 4 ; i ++){
for(int j = 0 ; j < 4 ; j ++){
for(int k = 0 ; k < 4 ; k ++){
///first operator
if(i == 0){
FinialNUM = NUM[0]+NUM[1];
Operators1 = " + ";
}else if(i == 1) {
FinialNUM = NUM[0] - NUM[1];
Operators1 = " - ";
}else if(i == 2){
FinialNUM = NUM[0] * NUM[1];
Operators1 = " * ";
}else if(i == 3){
FinialNUM = NUM[0] / NUM[1];
Operators1 = " / ";
}
if(FinialNUM < 0 || (FinialNUM != (int)FinialNUM) ){
Status = "With float point or negative Number";
}
//////second operator
if(j == 0){
FinialNUM += NUM[2] ;
Operators2 = " + ";
}else if(j == 1) {
FinialNUM -= NUM[2];
Operators2 = " - ";
}else if(j == 2){
FinialNUM *= NUM[2];
Operators2 = " * ";
}else if(j == 3){
FinialNUM /= NUM[2];
Operators2 = " / ";
}
if(FinialNUM < 0 || (FinialNUM != (int)FinialNUM) ){
Status = "With float point or negative Number";
}
/////// third operator
if(k == 0){
FinialNUM += NUM[3];
Operators3 = " + ";
}else if(k == 1) {
FinialNUM -= NUM[3];
Operators3 = " - ";
}else if(k == 2){
FinialNUM *= NUM[3];
Operators3 = " * ";
}else if(k == 3){
FinialNUM /= NUM[3];
Operators3 = " / ";
}if(FinialNUM == 24){
Str = Status +" (("+ NUM[0] + Operators1 + NUM[1] +")"+ Operators2 + NUM[2] +")"+ Operators3 + NUM[3];
System.out.println(Str + " = " + FinialNUM);
}}
}
}
}
}