Advertisement
ChromeGuy

code challange gone wrong

Sep 12th, 2016
183
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. use console.
  2. <script>
  3. function logg(func, tik, ts1, ts2, num, sum){
  4.     console.log(func+": "+tik+" numbers, sum of "+num+" is "+sum+", "+(ts2 - ts1)+"ms processing time")
  5. }
  6. function sum_split(num){
  7.     var ts1 = new Date;
  8.     var numsum = (''+num).split('').map(function(e){return parseInt(e)}).reduce(function(a,b){return a+b});
  9.     var tik = 0;
  10.     for(var i = 1;i<=num;i++){
  11.         var sum = (''+i).split('').map(function(e){return parseInt(e)}).reduce(function(a,b){return a+b});
  12.         if(sum==numsum)tik++;
  13.     }
  14.     var ts2 = new Date;
  15.     logg("split",tik,ts1,ts2,num,numsum);
  16. }
  17.  
  18. function sum_replace(num){
  19.     var ts1 = new Date;
  20.     var numsum = eval((''+num).replace(/(\d)(?=\d)/g, '$1+'));
  21.     var tik = 0;
  22.     for(var i = 1;i<=num;i++){
  23.         var sum = eval((''+i).replace(/(\d)(?=\d)/g, '$1+'));
  24.         if(sum==numsum)tik++;
  25.     }
  26.     var ts2 = new Date;
  27.     logg("replce",tik,ts1,ts2,num,numsum);
  28. }
  29.  
  30. function sum_mod(num){
  31.     var ts1 = new Date;
  32.     function sm(n) {
  33.         var s=0;
  34.         parseInt(n);
  35.         while(n>0){
  36.             s=s+n%10;
  37.             n=Math.floor(n/10);
  38.         }
  39.         return s;
  40.     }
  41.     var numsum = sm(num);
  42.     var tik = 0;
  43.     for(var i = 1;i<=num;i++){
  44.         var sum = sm(i);
  45.         if(sum==numsum)tik++;
  46.     }
  47.     var ts2 = new Date;
  48.     logg("mod",tik,ts1,ts2,num,numsum);
  49. }
  50. function sum_mod_qwik(num){
  51.     var ts1 = new Date;
  52.     function sm(n) {
  53.         var s=0;
  54.         parseInt(n);
  55.         while(n>0){
  56.             s=s+n%10;
  57.             n=Math.floor(n/10);
  58.         }
  59.         return s;
  60.     }
  61.     function smq(n,m) {
  62.         var s=0;
  63.         parseInt(n);
  64.         while(n>0){
  65.             s=s+n%10;
  66.             n=Math.floor(n/10);
  67.             if(s>m)return false;
  68.         }
  69.         if(s==m)return true;
  70.     }
  71.     var numsum = sm(num);
  72.     var tik = 0;
  73.     for(var i = 1;i<=num;i++){
  74.         if(smq(i,numsum))tik++;
  75.     }
  76.     var ts2 = new Date;
  77.     logg("modQ",tik,ts1,ts2,num,numsum);
  78. }
  79. function sum_mod_verbose(num){
  80.     var ts1 = new Date;
  81.     function sm(n) {
  82.         var s=0;
  83.         parseInt(n);
  84.         while(n>0){
  85.             s=s+n%10;
  86.             n=Math.floor(n/10);
  87.         }
  88.         return s;
  89.     }
  90.     var numsum = sm(num);
  91.     var tik = 0;
  92.     var verb = '';
  93.     for(var i = 1;i<=num;i++){
  94.         var sum = sm(i);
  95.         if(sum==numsum){
  96.             tik++;
  97.             verb+= i+',';
  98.         }
  99.     }
  100.     var ts2 = new Date;
  101.     logg("mod",tik,ts1,ts2,num,numsum);
  102.     console.log(verb);
  103. }
  104.  
  105. function sum_parse(num){
  106.     var ts1 = new Date;
  107.     function sm(n){
  108.         n=''+n;
  109.         var s=0;
  110.         for (var i = 0; i < n.length; i++) {
  111.             s += parseInt(n.charAt(i), 10);
  112.         }
  113.         return s;
  114.     }
  115.     var numsum = sm(num);
  116.     var tik = 0;
  117.     for(var i = 1;i<=num;i++){
  118.         var sum = sm(i);
  119.         if(sum==numsum)tik++;
  120.     }
  121.     var ts2 = new Date;
  122.     logg("parse",tik,ts1,ts2,num,numsum);
  123. }
  124.  
  125. function runall(n){
  126.     sum_split(n);
  127. //  sum_replace(n);
  128.     sum_parse(n);
  129.     sum_mod(n);
  130.     sum_mod_qwik(n);
  131. }
  132.  
  133. </script>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement