Advertisement
Guest User

Untitled

a guest
Nov 20th, 2019
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function esisteUnSottoinsiemeDi (a) {
  2.     let sommaTotale = 0;
  3.     let metaDellaSomma;
  4.    
  5.     for (let i = 0; i < a.length; ++i) {
  6.         sommaTotale += a[i];
  7.     }
  8.    
  9.     metaDellaSomma = sommaTotale / 2;
  10.  
  11.     return calcolaSottoinsiemeDi(a, 0, metaDellaSomma, 0, 0);
  12. }
  13.  
  14. function calcolaSottoinsiemeDi (a, start, meta, somma) {
  15.     for (let i = start; i < a.length; ++i) {
  16.         if ((start != 0 && somma + a[i] == meta) || (calcolaSottoinsiemeDi(a, i + 1, meta, start == 0 ? a[i] : somma + a[i]))) {
  17.             return true;
  18.         }
  19.     }
  20.    
  21.     return false;
  22. }
  23.  
  24. console.log(esisteUnSottoinsiemeDi([1,6,2,3,4,2,1,3])); // true
  25. console.log(esisteUnSottoinsiemeDi([3, 34, 4, 12, 5, 2])); // false
  26. console.log(esisteUnSottoinsiemeDi([-1,6,-2,3,6,-2,2,-6])); // true
  27. console.log(esisteUnSottoinsiemeDi([-1,5,-2,3,6,-2,2,-6,0])); // false
  28. console.log(esisteUnSottoinsiemeDi([2,2])); // false
  29. console.log(esisteUnSottoinsiemeDi([2,2, 4])); // true
  30. console.log(esisteUnSottoinsiemeDi([4,4])); // false
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement