JSFiddle - React, Tailwind, and code Playground

by Nalin Sajwan

JavaScript

let arr = [ 3, 6, 5, 1, 8 ]; 
let n = arr.length;
let div = 3;

let allSums = [];

function subsetSums(arr, l, r, sum) { 
          
  // Print current subset 
  if (l > r) { 
    // console.log("\n\nf => ", sum);
    if (sum % div === 0) {
    	allSums.push(sum);
    }
    return; 
  } 
  
  // console.log("1. => ", sum);
  // console.log("1. => ", arr[l]);
  // console.log("1.", sum + arr[l]);

  // Subset including arr[l] 
  subsetSums(arr, l + 1, r, sum + arr[l]); 
             
  // console.log("2.", sum);

  // Subset excluding arr[l] 
  subsetSums(arr, l + 1, r, sum);
} 


subsetSums(arr, 0, n - 1, 0);

allSums.sort((a, b) => {
	return b - a;
});

let highest = allSums[0];

console.log("highest ==> ", highest);