题目:
思路:
暴力循环
程序:
import java.text.DecimalFormat;
import java.util.Scanner;
public class subject1 {
public static double haveSuccess(int[] array1, int[] array2) {
if(array1 == null || array2 == null) {
return 0;
}
int sum1 = 0, sum2 = 0;
for(int i = 0; i < array1.length; i ++) {
sum1 += array1[i];
sum2 += array2[i];
}
int[] arr = new int[13];
for(int i = 0; i < 13; i ++) {//定义每张牌有4张
arr[i] = 4;
}
for(int i = 0; i < 3; i ++) {//得出每种大小的牌除取出之外,还剩多少张
arr[array1[i] - 1] -= 1;
arr[array2[i] - 1] -= 1;
}
int index = 0;
int temp = 0;
int[] array = new int[46];
for(int i = 0; i < 13; i ++) {减去已经取出的牌
temp = arr[i];
while(temp != 0) {
array[index ++] = i + 1;
temp --;
}
}
int count = 0;
for(int i = 0; i < 46; i ++) {//取两张牌,暴力循环,判断大小
for(int j = 0; j < 46; j ++) {
if(i != j) {
if(sum1 + array[i] > sum2 + array[j]) {
count ++;
}
}
}
}
DecimalFormat df = new DecimalFormat("0.0000");//保留小数点后四位
return (Double.parseDouble(df.format((double) (count) / (46 * 45))));
}
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
int[] arr1 = new int[3];
int[] arr2 = new int[3];
for(int i = 0; i < 3; i ++) {
arr1[i] = sc.nextInt();
}
for(int i = 0; i < 3; i ++) {
arr2[i] = sc.nextInt();
}
System.out.println(haveSuccess(arr1, arr2));
}
}