Print elements that can be added to form a given sum - GeeksforGeeks

13 Apr, 2021
Given an array arr[] of positive integers and a sum, the task is to print the elements that will be included to get the given sum. Note: 
Consider the elements in the form of queue i.e. Elements to be added from starting and up to the sum of elements is lesser or becomes equal to the given sum.Also, it is not necessary that the sum of array elements should be equal to the given sum.
Consider the elements in the form of queue i.e. Elements to be added from starting and up to the sum of elements is lesser or becomes equal to the given sum.
Also, it is not necessary that the sum of array elements should be equal to the given sum.
As the task is to check that element can be included or not.
Examples:  
Input: arr[] = {3, 5, 3, 2, 1}, Sum = 10 Output: 3 5 2 By adding 3, 5 and 3, sum becomes 11 so remove last 3. Then on adding 2, sum becomes 10. So no other element needs to be added. 
Input: arr[] = {7, 10, 6, 4}, Sum = 12 Output: 7 4 As, 7+10 and 7+6 sums to a higher value than 12 but 7+4 = 11 which is smaller than 12. So, 7 and 4 can be included  
Approach:  
Check if on adding the current element, the sum is less than the given sum.If yes, the add it.Else go to next element and repeat the same until their sum is less than or equals to the given sum.
Check if on adding the current element, the sum is less than the given sum.
If yes, the add it.
Else go to next element and repeat the same until their sum is less than or equals to the given sum.
Below is the implementation of above approach: 
C++
Java
Python3
C#
PHP
Javascript
// C++ implementation of above approach#include <bits/stdc++.h>using namespace std; // Function that finds whether an element// will be included or notvoid includeElement(int a[], int n, int sum){    for (int i = 0; i < n; i++) {         // Check if the current element        // will be incuded or not        if ((sum - a[i]) >= 0) {            sum = sum - a[i];            cout << a[i]<< " ";        }    }} // Driver Codeint main(){    int arr[] = { 3, 5, 3, 2, 1 };    int n = sizeof(arr) / sizeof(arr[0]);    int sum = 10;     includeElement(arr, n, sum);    return 0;}
// Java implementation// of above approachclass GFG{ // Function that finds whether// an element will be included// or notstatic void includeElement(int a[],                           int n, int sum){    for (int i = 0; i < n; i++)    {         // Check if the current element        // will be included or not        if ((sum - a[i]) >= 0)        {            sum = sum - a[i];            System.out.print(a[i] + " ");        }    }} // Driver codepublic static void main(String[] args){    int arr[] = { 3, 5, 3, 2, 1 };    int n = arr.length;    int sum = 10;     includeElement(arr, n, sum);}} // This code is contributed by Bilal
# Python 3 implementation of above approach # Function that finds whether an element# will be included or notdef includeElement(a, n, sum) :     for i in range(n) :         # Check if the current element        # will be incuded or not        if sum - a[i] >= 0 :             sum = sum - a[i]             print(a[i],end = " ") # Driver codeif __name__ == "__main__" :     arr = [ 3, 5, 3, 2, 1]    n = len(arr)    sum = 10     includeElement(arr, n, sum)                        # This code is contributed by ANKITRAI1
// C# implementation// of above approachusing System; class GFG{// Function that finds whether// an element will be included// or notstatic void includeElement(int[] a,                           int n, int sum){    for (int i = 0; i < n; i++)    {         // Check if the current element        // will be included or not        if ((sum - a[i]) >= 0)        {            sum = sum - a[i];            Console.Write(a[i] + " ");        }    }} // Driver codestatic void Main(){    int[] arr = new int[]{ 3, 5, 3, 2, 1 };    int n = arr.Length;    int sum = 10;     includeElement(arr, n, sum);}} // This code is contributed by mits
<?php// PHP implementation of above approach // Function that finds whether an// element will be included or notfunction includeElement(&$a, $n, $sum){    for ($i = 0; $i < $n; $i++)    {        // Check if the current element        // will be incuded or not        if (($sum - $a[$i]) >= 0)        {            $sum = $sum - $a[$i];            echo $a[$i] . " ";        }    }} // Driver Code$arr = array( 3, 5, 3, 2, 1 );$n = sizeof($arr);$sum = 10; includeElement($arr, $n, $sum); // This code is contributed// by ChitraNayal?>
<script> // Javascript implementation of above approach // Function that finds whether an element// will be included or notfunction includeElement(a, n, sum){    for(var i = 0; i < n; i++)    {                 // Check if the current element        // will be incuded or not        if ((sum - a[i]) >= 0)        {            sum = sum - a[i];            document.write( a[i] + " ");        }    }} // Driver Codevar arr = [ 3, 5, 3, 2, 1 ];var n = arr.length;var sum = 10; includeElement(arr, n, sum); // This code is contributed by itsok </script>
3 5 2
 
bilal-hungund
ankthon
Mithun Kumar
ukasp
itsok
Arrays
School Programming
Arrays
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Comments
Old Comments
Stack Data Structure (Introduction and Program)
Top 50 Array Coding Problems for Interviews
Introduction to Arrays
Multidimensional Arrays in Java
Linear Search
Python Dictionary
Reverse a string in Java
Inheritance in C++
C++ Classes and Objects
Constructors in C++