/**
- 问题描述
- 给出n个数,找出这n个数的最大值,最小值,和。 输入格式
- 第一行为整数n,表示数的个数。
- 第二行有n个数,为给定的n个数,每个数的绝对值都小于10000。 输出格式
- 输出三行,每行一个整数。第一行表示这些数中的最大值,第二行表示这些数中的最小值,第三行表示这些数的和。 样例输入 5 1 3 -2 4 5 样例输出 5 -2 11
- @author Administrator
*/
方法一用数组
import java.util.Arrays;
import java.util.Scanner;
public class 数列特征 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] ar = new int[n];
for(int i =0;i<ar.length;i++) {
ar[i] = sc.nextInt();
}
Arrays.sort(ar);//该方法排序后变成升序
System.out.println(ar[n-1]);//升序,最后一个最大
System.out.println(ar[0]);//升序,第一个最小
int sum = 0;
for(int i = 0;i<ar.length;i++)
sum+=ar[i];
System.out.println(sum);
}
}
方法二用链表
import java.util.Arrays;
import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
import java.util.Scanner;
public class BASIC_4 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int n =sc.nextInt();
//int[] array=new int[n];
LinkedList<Integer> list=new LinkedList<Integer>();
for(int i=0;i<n;i++){
//array[i] = sc.nextInt();
list.add(sc.nextInt());//把输入的数字都存入队列中
}
Collections.sort(list);//调用Collections的排序方法,升序
System.out.println(list.getLast());//拿到最后面那个,因为是升序,最后面那个就是最大的
System.out.println(list.getFirst());//拿到最前面那个最小,这个方法拿出来并不会移除
int result=0;
for(int i:list){
result+=i; //迭代队列中的元素,然后加起来
}
System.out.println(result);
}
}
网友评论