csp题目 2019-03-01(大中小)

172 阅读3分钟

csp题目 2019-03-01(大中小)

img
img

解答(java)

在下面有可复制的代码

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        // 输入一个整数n
        int n = scanner.nextInt();
        // 循环输入数组中的数
        int[] arr = new int[n];

        for (int i = 0; i < arr.length; i++) {
            arr[i] = scanner.nextInt();
        }

        // 判断升序降序
        if(arr[0] < arr[arr.length - 1]){
            // > 如果为升序,则最大的数为最后一个
            cal(arr, true);
        } else {
            // > 如果为降序,则最大的数为第一个
            cal(arr, false);
        }
    }

    public static void cal(int[] arr ,boolean flag){
        if(flag){
            // 升序
            System.out.print(arr[arr.length - 1] + " ");
        }else {
            // 降序
            System.out.print(arr[0] + " ");
        }

        if(arr.length % 2 == 0){
            // 长度为偶数的情况
            if(arr[arr.length / 2] % 2 == 0 && (arr[arr.length / 2 - 1] ) % 2== 0 || (arr[arr.length / 2] % 2 != 0 && (arr[arr.length / 2 - 1] )  % 2 != 0)){
                // 结果为整数的情况
                int result = (arr[arr.length / 2]  + arr[arr.length / 2 - 1] ) / 2;
                System.out.print(result + " ");
            }else {
                // 结果为小数的情况
                System.out.printf("%.1f ", (((float)arr[arr.length / 2]  + (float)arr[arr.length / 2 - 1] ) / 2));
            }
        }else {
            // 长度为奇数的情况
            System.out.print(arr[arr.length / 2] + " ");
        }

        if(flag){
            // 升序
            System.out.println(arr[0]);
        } else {
            // 降序
            System.out.println(arr[arr.length - 1]);
        }
    }
}