Computer >> Máy Tính >  >> Lập trình >> lập trình C

In các bộ ba có tổng nhỏ hơn hoặc bằng k trong Chương trình C


Cho mảng có tập hợp các phần tử và nhiệm vụ là tìm ra tập hợp có chính xác ba phần tử có tổng nhỏ hơn hoặc bằng k.

Đầu vào - arr [] ={1,2,3,8,5,4}

Đầu ra - tập hợp → {1, 2, 3} {1, 2, 5} {1, 2, 4} {1, 3, 5} {1, 3, 4} {1, 5, 4} {2, 3, 5} {2, 3, 4}

Trong phần này, nhiệm vụ đầu tiên là tính toán kích thước của mảng tùy thuộc vào đó vòng lặp for của i được lặp cho đến kích thước-2 và vòng lặp for của j được lặp cho đến kích thước-1 và vòng lặp for k được lặp cho đến kích thước

Thuật toán

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

Ví dụ

#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;
}

Đầu ra

Nếu chúng ta chạy chương trình trên thì nó sẽ tạo ra kết quả sau.

{1, 2, 3}
{1, 2, 5}
{1, 2, 4}
{1, 3, 5}
{1, 3, 4}
{1, 5, 4}
{2, 3, 5}
{2, 3, 4}