Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <body>
- Running <span id="ix">X</span> out of <span id="tot">T</span>, click continue if complains.
- <script>
- // Author: Dmitri Pavlenkov, 2010
- Array.prototype.mask=function(m) {
- var result=[];
- var mask=m;
- var i=0;
- while(mask>0) {
- if(mask&1==1) {
- result.push(this[i]);
- }
- i++;
- mask>>=1;
- }
- return result;
- }
- Array.prototype.reduce=function(fn,init,pred) {
- if(this.length===0) {
- return init;
- }
- var result=init;
- if(init) {
- result=fn(init,this[0]);
- } else {
- result=this[0];
- }
- for(var i=1;i<this.length;i++) {
- result=fn(result,this[i]);
- if(pred && pred(result)) {
- return result;
- }
- }
- return result;
- }
- var nums=[3, 4, 9, 14, 15, 19, 28, 37, 47, 50, 54, 56, 59, 61, 70, 73, 78, 81, 92, 95, 97, 99];
- var sets=0;
- var sums=[];
- document.getElementById("tot").innerHTML=nums.length-1;
- for(var i=0;i<nums.length-1;i++) {
- document.getElementById("ix").innerHTML=(i+1);
- var mask=Math.pow(2,i+1)-1;
- var sum=nums[i+1];
- while(mask>0) {
- if(!sums[mask]) {
- sums[mask]=nums.mask(mask).reduce(function(a,b) {return a+b;});
- }
- if(sum===sums[mask]) {
- sets++;
- }
- mask--;
- }
- }
- alert(sets);
- </script>
- </body>
Add Comment
Please, Sign In to add comment