问题描述
kAc有n堆糖果,每堆有A[i]个。
kAc说你只能拿m次糖果,聪明的你当然想要拿最多的糖果来吃啦啦啦~
//第二天,kAc问你还想吃糖果么?(嘿嘿嘿)说着眼角路出奇怪的微笑...
这道题,要我说,他的难点就在于,审题可能没看懂自己要干嘛,我也是看了输入、输出示范才知道他要干什么的。
下面回归正题,他其实就是要你写一个数组,输入n堆糖果的同时n也代表了数组的长度,知道这些后就简单了,写出数组之后,将他们进行排序,最后以for循环的方式写出来
package Jcsuanfa;
import java.util.*;
public class AL1000 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
//输入糖果的堆数
int n = input.nextInt();
//输入拿糖果的次数
int m = input.nextInt();
//这里要注意,题目要求的数量范围是在0~1000000000之内的
//所以int长度不够,要用long
long sum = 0;
int [] arr = new int [n];
//输入每堆糖果的数量
for (int i = 0; i < n; i++) {
arr[i] = input.nextInt();
}
//将他们进行排序
Arrays.sort(arr);
//拿出最大的糖果数
for (int i = n-1; i >= n-m; i--) {
sum+=arr[i];
}
System.out.println(sum);
}
}