Last active
December 4, 2015 14:00
-
-
Save taichiman/f4638550934d4ac73094 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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)