तत्वों के सेट के साथ एक ऐरे दिया गया है और कार्य है ठीक तीन तत्वों वाले उन सेट्स को ढूंढना जिनका योग 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 का फॉर लूप size-2 तक, j का फॉर लूप size-1 तक और k का फॉर लूप size तक पुनरावृति करता है।
एल्गोरिदम
शुरुआत
चरण 1 -> int वेरिएबल sum को k (जैसे 10), i, j, k घोषित करें
चरण 2 -> size को ऐरे के आकार के रूप में घोषित और प्रारंभ करें: sizeof(arr)/sizeof(arr[0])
चरण 3 -> लूप i = 0 से size-2 तक
लूप j = i+1 से size-1 तक
लूप k = j+1 से size तक
यदि arr[i] + arr[j] + arr[k] <= sum
arr[i], arr[j], arr[k] प्रिंट करें
लूप समाप्त
रुकें
उदाहरण
#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}