Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function esisteUnSottoinsiemeDi (a) {
- let sommaTotale = 0;
- let metaDellaSomma;
- for (let i = 0; i < a.length; ++i) {
- sommaTotale += a[i];
- }
- metaDellaSomma = sommaTotale / 2;
- return calcolaSottoinsiemeDi(a, 0, metaDellaSomma, 0, 0);
- }
- function calcolaSottoinsiemeDi (a, start, meta, somma) {
- for (let i = start; i < a.length; ++i) {
- if ((start != 0 && somma + a[i] == meta) || (calcolaSottoinsiemeDi(a, i + 1, meta, start == 0 ? a[i] : somma + a[i]))) {
- return true;
- }
- }
- return false;
- }
- console.log(esisteUnSottoinsiemeDi([1,6,2,3,4,2,1,3])); // true
- console.log(esisteUnSottoinsiemeDi([3, 34, 4, 12, 5, 2])); // false
- console.log(esisteUnSottoinsiemeDi([-1,6,-2,3,6,-2,2,-6])); // true
- console.log(esisteUnSottoinsiemeDi([-1,5,-2,3,6,-2,2,-6,0])); // false
- console.log(esisteUnSottoinsiemeDi([2,2])); // false
- console.log(esisteUnSottoinsiemeDi([2,2, 4])); // true
- console.log(esisteUnSottoinsiemeDi([4,4])); // false
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement