【2021春招】美团春招练习题--编程题套1

美团春招练习题–编程题套1
请添加图片描述

import java.util.*;

public class Main {
    
    
    public static void main(String[] args) {
    
    
        Scanner read = new Scanner(System.in);
        int[] starts = new int[5];
        double sum = 0.0;
        int count = 0;
        for (int i = 0; i < 5; i++) {
    
    
            starts[i] = read.nextInt();
            sum += starts[i] * (i + 1);
            count += starts[i];
        }
        //利用int转型,去尾
        //DecimalFormat df = new DecimalFormat( "0.00000"); 
		//System.out.println(df.format(b));
        //保留4位,但是会四舍五入
        sum = sum / count * 10;
        int res = (int) sum;
        System.out.println((double)res/10);
    }
}

请添加图片描述

import java.util.*;

public class Main {
    
    
    public static void main(String[] args) {
    
    
        Scanner read = new Scanner(System.in);
        int n = read.nextInt();
        int[] nums = new int[n];
        int count = 0;
        for (int i = 0; i < n; i++) {
    
    
            nums[i] = read.nextInt();
        }
        boolean falg = true;
        //进行两两合并,被合并的变成0,
        while(falg){
    
    
            for(int i = 0; i < n-1; ){
    
    
                int j = i+1;
                while(nums[j] == 0){
    
    
                    j++;
                }
                if(nums[i] == nums[j]){
    
    
                    nums[i]++;
                    count++;
                    nums[j] = 0;
                    falg = false;
                    i = j+1;
                }
                else{
    
    
                    i = j;
                }
            }
            falg = !falg;
        }
        System.out.println(count);
    }
}

请添加图片描述

import java.util.*;

public class Main {
    
    
    public static void main(String[] args) {
    
    
        Scanner read = new Scanner(System.in);
        int n = read.nextInt();
        int value = 0;
        int spend = 0;
        for (int i = 0; i < n; i++) {
    
    
            int[] temp = new int[2];
            temp[0] = read.nextInt();
            temp[1] = read.nextInt();
            if(temp[0] > temp[1]){
    
    
                value += temp[0];
                spend += temp[0]-temp[1];
            }
            else{
    
    
                value += temp[1];
            }
        }
        System.out.println(value+" "+spend);
    }
}

请添加图片描述

import java.util.*;

public class Main {
    
    
    public static void main(String[] args) {
    
    
        Scanner read = new Scanner(System.in);
        int n = read.nextInt();
        int dis = 0;
        List<int[]> list = new ArrayList<>();
        for (int i = 0; i < n - 1; i++) {
    
    
            int[] nums = new int[3];
            nums[0] = read.nextInt();
            nums[1] = read.nextInt();
            nums[2] = read.nextInt();
            dis += nums[2]*2;
            list.add(nums);
        }
        int[] dp = new int[n + 1];
        Arrays.fill(dp, -1);
        dp[1] = 0;
        boolean falg = true;
        while (falg) {
    
    
            for (int i = 0; i < n - 1; i++) {
    
    
                int[] temp = list.get(i);
                if (dp[temp[0]] != -1 && dp[temp[1]] == -1) {
    
    
                    dp[temp[1]] = dp[temp[0]] + temp[2];
                    falg = false;
                }

            }
            falg = !falg;
        }
        int maxdis = 0;
        int sum = 0;
        for (int i = 1; i < n + 1; i++) {
    
    
            maxdis = Math.max(maxdis, dp[i]);
            sum += dp[i];
        }
        System.out.println(sum + " " + (dis - maxdis));
    }
}

猜你喜欢

转载自blog.csdn.net/qq_39457586/article/details/114606901