在C程序中打印总和小于或等于k的三元组

给定具有元素集的数组,任务是找出具有三个总和小于或等于k的元素的集合。

输入 − arr [] = {1,2,3,8,5,4}

输出 -设置→{1,2,3} {1,2,5} {1,2,4} {1,3,5} {1,3,4} {1,5,4} {2,3 ,5} {2,3,4}

在此,第一个任务是计算数组的大小,具体取决于迭代i的for循环直到size-2和j的for循环直到size-1和k的for循环直到size的数组的大小。

阿尔戈里斯

START

Step 1 -> declare int variable sum to k (e.g. 10), i, j, k

Step 2 -> declare and initialise size with array size using sizeof(arr)/sizeof(arr[0])

Step 3 -> Loop For i to 0 and i<size-2 and i++

   Loop For j to i+1 and j<size-1 and j++

      Loop For k to j+1 and k<size and k++

         IF arr[i]+ arr[j] + arr[k] <= sum

            Print arr[i] and arr[j] and arr[k]

         End IF

      End Loop for

   End Loop For

Step 4 -> End Loop For

STOP

示例

#include <stdio.h>

int main(int argc, char const *argv[]) {

   int arr[] = {1, 2, 3, 8, 5, 4};

   int sum = 10;

   int i, j, k;

   int size = sizeof(arr)/sizeof(arr[0]);

   for (i = 0; i < size-2; i++) {

      for (j = i+1; j < size-1; j++) {

         for (k = j+1; k < size; k++) {

            if( arr[i]+ arr[j] + arr[k] <= sum )

               printf( "{%d, %d, %d}\n",arr[i], arr[j], arr[k] );

         }

      }

   }

   return 0;

}

输出结果

如果我们运行上面的程序,那么它将生成以下输出。

{1, 2, 3}

{1, 2, 5}

{1, 2, 4}

{1, 3, 5}

{1, 3, 4}

{1, 5, 4}

{2, 3, 5}

{2, 3, 4}

以上是 在C程序中打印总和小于或等于k的三元组 的全部内容, 来源链接: utcz.com/z/335374.html

回到顶部