如何从数组中查找使和等于给定值的元素

时间:2020-02-20 15:37:22

标签: arrays

将给定数字求和的数组中最小的整数数。程序应要求用户输入整数数组(“ 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;
                                }
                            }
                        }

                     }

                  }         

1 个答案:

答案 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);

} }