将给定数字求和的数组中最小的整数数。程序应要求用户输入整数数组(“ Input Array”)和所需的总和(“ Required Sum”)。输出(“输出”)应列出输入数组中求和总和的最低整数。请参阅下面给出的示例。
示例:
输入数组:[10,0,-1,20,25,30] 必填项:45 输出:[20,25]
要求的总和:59 输出:[10,-1、20、30]
要求的总和:60 输出:[10、20、30]
public static void main(String [] args){
int arr[]={10, 0, -1, 20, 25, 30};
int sum=59 ,temp=0;
for(int i=0;i<arr.length;i++){
for(int j=i;j<arr.length;j++){
if(arr[i]>arr[j]){
temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}
for(int i=0;i<arr.length;i++){
System.out.println(arr[i]);
}
for(int i=0;i<arr.length;i++){
for(int j=i;j<arr.length-1;j++){
if(arr[i]+arr[j]==sum){
System.out.println(arr[i]+","+arr[j]);
break;
}
else {
for(int k=j+1;k<arr.length-2;k++){
if(arr[i]+arr[j]+arr[k]==sum){
System.out.println(arr[i]+","+arr[j]+","+arr[k]);
break;
}
}
}
}
}
答案 0 :(得分:0)
公共类SumofArray {
public static void main(String[] args) {
int arr[] = { 10, 0, -1, 20, 25, 30 };
Scanner sc = new Scanner(System.in);
System.out.println("enter the sum:");
int sum = sc.nextInt();
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]+" ");
}
ArrayList arraylist = new ArrayList();
int y = 0;
int l = arr.length - 1;
for (int i = 0; i < arr.length; i++, l--) {
for (int j = 1 + i; j < arr.length; j++) {
for (int k = 1 + j; k < arr.length; k++){
if (arr[i] + arr[j] == sum) {
arraylist.clear();
arraylist.add(arr[i]);
arraylist.add(arr[j]);
}
else if (arr[i] + arr[j] + arr[k] == sum) {
arraylist.clear();
arraylist.add(arr[i]);
arraylist.add(arr[j]);
arraylist.add(arr[k]);
}
else if (arr[i] + arr[j] + arr[k] + arr[l] == sum) {
arraylist.clear();
arraylist.add(arr[i]);
arraylist.add(arr[j]);
arraylist.add(arr[k]);
arraylist.add(arr[l]);
}
}
}
}
System.out.println(arraylist);
} }