Guest User

Untitled

a guest
Jun 18th, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.30 KB | None | 0 0
  1. <body>
  2. Running <span id="ix">X</span> out of <span id="tot">T</span>, click continue if complains.
  3.  
  4. <script>
  5. // Author: Dmitri Pavlenkov, 2010
  6.  
  7. Array.prototype.mask=function(m) {
  8. var result=[];
  9. var mask=m;
  10. var i=0;
  11. while(mask>0) {
  12. if(mask&1==1) {
  13. result.push(this[i]);
  14. }
  15. i++;
  16. mask>>=1;
  17. }
  18. return result;
  19. }
  20.  
  21. Array.prototype.reduce=function(fn,init,pred) {
  22. if(this.length===0) {
  23. return init;
  24. }
  25. var result=init;
  26. if(init) {
  27. result=fn(init,this[0]);
  28. } else {
  29. result=this[0];
  30. }
  31. for(var i=1;i<this.length;i++) {
  32. result=fn(result,this[i]);
  33. if(pred && pred(result)) {
  34. return result;
  35. }
  36. }
  37. return result;
  38. }
  39.  
  40.  
  41. var nums=[3, 4, 9, 14, 15, 19, 28, 37, 47, 50, 54, 56, 59, 61, 70, 73, 78, 81, 92, 95, 97, 99];
  42.  
  43. var sets=0;
  44. var sums=[];
  45. document.getElementById("tot").innerHTML=nums.length-1;
  46. for(var i=0;i<nums.length-1;i++) {
  47. document.getElementById("ix").innerHTML=(i+1);
  48. var mask=Math.pow(2,i+1)-1;
  49. var sum=nums[i+1];
  50. while(mask>0) {
  51. if(!sums[mask]) {
  52. sums[mask]=nums.mask(mask).reduce(function(a,b) {return a+b;});
  53. }
  54. if(sum===sums[mask]) {
  55. sets++;
  56.  
  57. }
  58. mask--;
  59. }
  60. }
  61.  
  62.  
  63. alert(sets);
  64.  
  65. </script>
  66.  
  67. </body>
Add Comment
Please, Sign In to add comment