第一题燃烧卡路里,贴一个AC的代码,个人觉得9%是因为考虑的不够完整
import java.util.Scanner;
import java.util.Arrays;
public class Main{
public static void main(String[] args){
Scanner input = new Scanner(System.in);
int a=input.nextInt();
int b=input.nextInt();
int[] c =new int[a];
for(int i=0;i<a;i++){
c[i]=input.nextInt();
}
Arrays.sort(c);
int sum=0;
int result=0;
int count=0;
// 大致思路就是排完序后,看加和与给定值的关系
for(int i=0;i<a;i++){
sum=sum+c[i];
if(sum>b){ // 若大于给定值,此数不计入总数,结束循环
result=count;
break;
}else if(sum==b){ //若等于给定值,此数计于总数,结束循环
result=count+1;
break;
}else{ // 若小于该值,此数计于总数,接着循环
count++;
if(i==a-1){ //直到该数走到最后一个数时,还小于给定值时,说明给定值太大了,所有数加起来都加不到该值
result=a; // 此时输出数组所含数的总个数
break;
}
}
}
System.out.print(result);
}
}