拼多多服务端第三题 求大佬解惑 只过了10% 气死了
import java.text.DecimalFormat;
import java.util.*;
public class Main2 {
    public void pdd2(int[] nums) {
        DecimalFormat df = new DecimalFormat("0.00");
        Arrays.sort(nums);
        int base = get_count(nums,-1);
        //System.out.println(Arrays.toString(nums));
        int result = 0;
        int last_index = nums.length - 1;
        while(nums[last_index]!=1){
            int count = get_count(nums,last_index);
            result += count*nums[last_index];
            System.out.println(nums[last_index]+"   "+count);
            nums[last_index]--;
            while(last_index - 1>= 0 && nums[last_index] < nums[last_index - 1]){
                my_swap(nums,last_index,last_index - 1);
                last_index--;
            }
            last_index = nums.length - 1;
        }
        result+=1;
        double final_result = result*1.0/base;
        System.out.println(df.format(final_result));
    }
    public int get_count(int[] nums,int except_index){
        int result = 1;
        for (int i = 0; i < nums.length; i++) {
            if(i == except_index)continue;
            result*=nums[i];
        }
        return result;
    }
    public void my_swap(int[] nums,int a,int b){
        int temp = nums[a];
        nums[a] = nums[b];
        nums[b] = temp;
    }
    public static void main(String[] args) {
        Main2 main = new Main2();
        Scanner scanner = new Scanner(System.in);
        int num = Integer.parseInt(scanner.nextLine());
        int[] nums = new int[num];
        while (scanner.hasNextLine()) {
            String[] strs = scanner.nextLine().split(" ");
            for (int i = 0; i < num; i++) {
                nums[i] = Integer.parseInt(strs[i]);
            }
            main.pdd2(nums);
        }
    }
}
 #拼多多##笔试题目#
 联想公司福利 1500人发布
联想公司福利 1500人发布

 投递蚂蚁集团等公司10个岗位
投递蚂蚁集团等公司10个岗位