原题:第二大数
第二大数原题链接

源码:

  import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();//首先输入一个数n
        int[] arr=new int[n];//定义一个长度为n的数组
        for (int i = 0; i < n; i++) {//将数输入到数组中
            arr[i]=sc.nextInt();
        }
        int max1,max2;//定义一个第一大数、一个第二大数
        long res=0;
        for (int i = 0; i <n-1 ; i++) {//n个数进行n-1次比较
            max2=Integer.MIN_VALUE;//max2先等于int类型的最小值
            max1=arr[i];
            for (int j = i+1; j <n ; j++) {
                if (arr[j]>max1){
                    max2=max1;
                    max1=arr[j];
                }else if (arr[j]>max2&&arr[j]<max1){
                    max2=arr[j];
                }
                res+=max2;
            }
        }
        System.out.println(res);
    }
}

知识点:

整型范围的最小值为Integer.MIN_VALUE
(1)有意思的是,当达到整型的最大值也就是 Integer.MAX_VALUE 时,如果此时再 + 1 的话,值就会变为整型的最小值也就是 Integer.MIN_VALUE
(2)那么如果给整型的最小值取反或者取绝对值会是怎么样,答案是还是 Integer.MIN_VALUE -2147483648

最后修改:2022 年 04 月 24 日
如果觉得我的文章对你有用,请随意赞赏