Skip to content

Instantly share code, notes, and snippets.

@taichiman
Last active December 4, 2015 14:00
Show Gist options
  • Save taichiman/f4638550934d4ac73094 to your computer and use it in GitHub Desktop.
Save taichiman/f4638550934d4ac73094 to your computer and use it in GitHub Desktop.
numbers=[]
//seed numbers
var i=1
do {
numbers.push(i)
i++
} while (i<101)
//left only odd
numbers = numbers.filter(function(val,idx){
return !(idx % 2);
})
//sum pairs
i=0
var summed_pairs=[];
do {
summed_pairs.push(numbers[i]+numbers[i+1])
i+=2
} while (i<49)
//left only 1 and 0 equal numbers'
left_pairs = summed_pairs.filter(function(val){
return equalOneZero(val)
});
console.log('> left pairs', left_pairs)
// return count of 1
var all_ones = left_pairs.reduce(function(prevValue, curValue){
return prevValue + Number(curValue).toString(2)
}, '');
console.log('> ones count = ', all_ones.match(/1/g).length)
function equalOneZero(number){
bin = Number(number).toString(2)
count_one=bin.match(/1/g).length
count_zero=bin.match(/0/g).length
return count_one==count_zero
}
//test equalOneZero
//console.log('> test for equalOneZero(100)=false')
//console.log(equalOneZero(100) == false)
//console.log('> test for equalOneZero(10)=true')
==
node edinic.js 0.09s user 0.00s system 70% cpu 0.137 total
@taichiman
Copy link
Author

first version:

console.log('hw')

numbers=[]

var i=1
do {
numbers.push(i)
i++
} while (i<101)

numbers = numbers.filter(function(val,idx){
return !(idx % 2);
})

console.log('l: odd deleted numbers[]=', numbers)

var i=0
var summed_pairs=[];

do {
summed_pairs.push(numbers[i]+numbers[i+1])
i+=2
} while (i<49)

console.log('l: summed_pairs[]=', summed_pairs)

//
function equalOneZero(number){
bin = Number(number).toString(2)
count_one=bin.match(/1/g).length
count_zero=bin.match(/0/g).length
return count_one==count_zero

}

//test equalOneZero
console.log('> test for equalOneZero(100)=false')
console.log(equalOneZero(100) == false)
console.log('> test for equalOneZero(10)=true')

console.log('left only equal numbers')
left_pairs = summed_pairs.filter(function(val){
return equalOneZero(val)
});

console.log('> left pairs', left_pairs)

// return one count
var all_ones = left_pairs.reduce(function(prevValue, curValue){
return prevValue + Number(curValue).toString(2)
}, '');

console.log('> all ones', all_ones)

console.log('> ones count = ', all_ones.match(/1/g).length)

ones count = 20
node edinic.js 0.10s user 0.00s system 84% cpu 0.128 total

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment