在 Java 中获取数组中总和等于特定数字的三元组

javaobject oriented programmingprogramming更新于 2024/11/2 22:36:17

在 Java 中,数组是一个对象。它是一种非原始数据类型,用于存储类似数据类型的值。

根据问题陈述,我们必须获取数组中总和等于特定数字的所有三元组。这里的三元组指的是满足特定条件的数组中的任意三个元素。

注意 - 数组必须是整数数组。

让我们探索这篇文章,看看如何使用 Java 编程语言来实现它。

向您展示一些实例

实例 1

假设原始数组为 {3, 4, 25, 6, 13, 9}。

执行三元组运算后,得到总和等于 37,结果将是 −

三元组为 3, 25, 9。

实例-2

假设原始数组为 {11, 4, 5, 6, 21, 29}

执行三元组运算后,得到总和等于 22,结果将是 −

三元组为 11, 5, 6。

实例-3

假设原始数组为 {8, 2, 15, 6, 11, 1}

执行三元组运算后,得到总和等于14,结果将是 −

三元组为 2、11、1。

算法

  • 步骤 1 − 声明并初始化一个整数数组。

  • 步骤 2 − 声明需要找出三元组的和。

  • 步骤 3 − 初始化三个 for 循环,一个在另一个内部,以找出三元组元素。

  • 步骤 4 − 检查三个元素是否等于和。

  • 步骤 5 − 打印三元组。

语法

获取数组的长度(数组元素的数量)元素),数组有一个内置属性,即 length

下面是它的语法 −

array.length

其中,"array" 指的是数组引用。

多种方法

我们提供了不同方法的解决方案。

  • 通过使用数组的静态初始化

  • 通过使用用户定义的方法

让我们逐一查看程序及其输出。

方法 1:通过使用数组的静态初始化

示例

在这种方法中,数组元素将在程序中初始化。然后根据算法获取数组中所有和等于特定数字的三元组。

public class Main{
   //main 方法
   public static void main(String[] args){

        //声明并初始化数组元素
        int arr[] = {11, 4, 5, 6, 21, 29};
        
        //需要找出三元组的特定数字
        int sum = 15;
        
        //将第一个元素固定为 a[i]
        for (int i = 0; i < arr.length - 2; i++) {

         // 将第二个元素固定为 a[j]
         for (int j = i + 1; j < arr.length - 1; j++) {
            // Now look for the third number in an array
            for (int k = j + 1; k < arr.length; k++) {             
               if (arr[i] + arr[j] + arr[k] == sum) {

                  //打印三元组
                  System.out.print("The triplet is " + arr[i] + ", " + arr[j] + ", " + arr[k] + ".");
               }
            }
         }
      }
   }
}

输出

The triplet is 4, 5, 6.

方法 2:使用用户定义方法

示例

在此方法中,数组元素将在程序中初始化。然后通过将数组作为参数传递来调用用户定义方法,并根据算法在方法内部获取数组中所有三元组,其总和等于特定数字。

public class Main{
   //main 方法
   public static void main(String[] args){

      //声明并初始化数组元素
      int arr[] = { 8, 2, 15, 6, 11, 1 };

      //调用用户定义的方法
      triplet(arr);
   }

   //用户定义的方法
   public static void triplet(int []arr){

      //需要找出其三元组的特定数字
      int sum = 14;

      // 固定第一个元素为 a[i]
      for (int i = 0; i < arr.length - 2; i++) {
         // 将第二个元素固定为 a[j]
         for (int j = i + 1; j < arr.length - 1; j++) {
            // 现在寻找数组中的第三个数字
               for (int k = j + 1; k < arr.length; k++) {              
                  if (arr[i] + arr[j] + arr[k] == sum) {

                  //打印三元组
                  System.out.print("The triplet is " + arr[i] + ", " + arr[j] + ", " + arr[k] + ".");
               }
            }
         }
      }
   }
}

输出

The triplet is 2, 11, 1.

在本文中,我们探讨了如何在 Java 中获取数组中所有和等于特定数字的三元组。


相关文章


有用资源