Code :
# include <stdio.h>
void find3Numbers(int A[], int arr_size, int sum)
{
    int l, r;
    for (int i = 0; i
< arr_size-2; i++){
       for (int j =
i+1; j < arr_size-1; j++){          
           for (int k
= j+1; k < arr_size; k++){
               if
(A[i] + A[j] + A[k] <= sum)
                
printf("Triplet is %d, %d, %d\n", A[i], A[j], A[k]);
            }
        }
     }
}
int main()
{
    int A[] = {1, 2,
3, 4, 6};
    int sum = 8;
    int arr_size =
sizeof(A)/sizeof(A[0]); 
    find3Numbers(A,
arr_size, sum); 
    return 0;
}
Output : 
Triplet is 1, 2, 3
Triplet is 1, 2, 4
Triplet is 1, 3, 4
Execution :
arr_size = 5
Step:1   i=0 and i<3
(arr_size-2)
                                j=1
and j<4 (arr_size-1)
                                                k=2
and k<5 (arr_size)
                                                                A[0]+A[1]+A[2]<=sum --> 1+2+3 <=8 --> 6<=8
( true )
                                                k=3
and k<5
                                                                A[0]+A[1]+A[3]<=sum --> 1+2+4 <=8 --> 7<=8
( true )
                                                k=4
and k<5
                                                                A[0]+A[1]+A[4]<=sum --> 1+2+6 <=8 --> 9<=8 (
false )
                                j=2
and j<4
                                                k=3
and k<5
                                                                A[0]+A[2]+A[3]<=sum --> 1+3+4 <=8 --> 8<=8
( true )
                                                k=4
and k<5
                                                                A[0]+A[2]+A[4]<=sum --> 1+3+6 <=8 --> 10<=8 (
false )
                                j=3
and j<4
                                                k=4 and k<5
                                                                A[0]+A[3]+A[4]<=sum --> 1+4+6 <=8 --> 11<=8 (
false )
                                j=4
and j<4 (false)
Step:2  i=1 and i<3
                                j=2
and j<4
                                                k=3
and k<5
                                                                A[1]+A[2]+A[3]<=sum --> 2+3+4 <=8 --> 9<=8 (
false )
                                                k=4
and k<5
                                                                A[1]+A[2]+A[4]<=sum --> 2+3+6 <=8 --> 11<=8 (
false )
                                j=3
and j<4
                                                k=4 and k<5
                                                                A[1]+A[3]+A[4]<=sum --> 2+4+6 <=8 --> 12<=8 (
false )
                                j=4
and j<4 (false)
Step:3 i=2 and i<3
                                j=3
and j<4
                                                k=4 and k<5
                                                                A[2]+A[3]+A[4]<=sum --> 3+4+6 <=8 --> 13<=8 (
false )
                                j=4
and j<4 (false)
Step:4 i=3 and i<3 (false)
 
No comments:
Post a Comment