Advertisement
AyrA

5 Tasks

May 8th, 2015
362
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
HTML 2.35 KB | None | 0 0
  1. <html><head>
  2. <script type="text/javascript">
  3.  
  4. // https://blog.svpino.com/2015/05/07/five-programming-problems-every-software-engineer-should-be-able-to-solve-in-less-than-1-hour
  5. // http://www.reddit.com/r/programming/comments/358tnp/five_programming_problems_every_software_engineer/
  6.  
  7. //Helper function to create random numbered list
  8. function rand(num)
  9. {
  10.     var q=[];
  11.     for(var i=0;i<num;i++)
  12.     {
  13.         q.push(Math.random()*100|0);
  14.     }
  15.     return q;
  16. }
  17.  
  18. //Task 1
  19. function sumA(list)
  20. {
  21.     var i=0;
  22.     var ret=0;
  23.     while(i<list.length)
  24.     {
  25.         ret+=list[i++];
  26.     }
  27.     return ret;
  28. }
  29. function sumB(list)
  30. {
  31.     var ret=0;
  32.     for(var i=0;i<list.length;i++)
  33.     {
  34.         ret+=list[i];
  35.     }
  36.     return ret;
  37. }
  38. function sumC(list,start)
  39. {
  40.     if(!start)
  41.     {
  42.         start=0;
  43.     }
  44.     if(start<list.length)
  45.     {
  46.         return list[start]+sumC(list,start+1);
  47.     }
  48.     return 0;
  49. }
  50. var list=rand(10);
  51. console.log("Sum",list,sumA(list),sumB(list),sumC(list));
  52.  
  53. //Task 2
  54. function merge(listA,listB)
  55. {
  56.     var ret=[];
  57.     for(var i=0;i<listA.length && i<listB.length;i++)
  58.     {
  59.         ret.push(listA[i]);
  60.         ret.push(listB[i]);
  61.     }
  62.     return ret;
  63. }
  64.  
  65. var mergeA=rand(5);
  66. var mergeB=rand(5);
  67. console.log("Merge",mergeA,mergeB,merge(mergeA,mergeB));
  68.  
  69. //Task 3
  70. function fibonnaci(count)
  71. {
  72.     var fib=[0,1];
  73.     for(var i=1;i<count;i++)
  74.     {
  75.         fib.push(fib[i-1]+fib[i]);
  76.     }
  77.     return fib;
  78. }
  79. console.log("Fibonnaci",fibonnaci(100));
  80.  
  81. //Task 4
  82. function arrange(list)
  83. {
  84.     var maxlen=0;
  85.     list=list.map(function(v,i,a)
  86.     {
  87.         var s=v.toString();
  88.         if(s.length>maxlen)
  89.         {
  90.             maxlen=s.length;
  91.         }
  92.         return s;
  93.     });
  94.     var f=function(v)
  95.     {
  96.         v=v.toString();
  97.         while(v.length<maxlen)
  98.         {
  99.             v+="0";
  100.         }
  101.         return v;
  102.     };
  103.     return list.sort(function(a,b)
  104.     {
  105.         return parseInt(f(b))-parseInt(f(a));
  106.     }).join("");
  107.     return 0;
  108. }
  109. var arrangeA=rand(5);
  110. console.log("arrange",arrangeA,arrange(arrangeA));
  111.  
  112. //Task 5
  113. function get100()
  114. {
  115.     var list=[1,2,3,4,5,6,7,8,9];
  116.     var possible=[];
  117.     var s={"0":"","1":"-","2":"+"};
  118.     for(var i=0;i<=6560;i++)
  119.     {
  120.         var p=i.toString(3).split("").map(function(v){return parseInt(v)});
  121.         var nums="1"+s[p[0]||0]+"2"+s[p[1]||0]+"3"+s[p[2]||0]+"4"+s[p[3]||0]+"5"+s[p[4]||0]+"6"+s[p[5]||0]+"7"+s[p[6]||0]+"8"+s[p[7]||0]+"9";
  122.         if(eval(nums)===100)
  123.         {
  124.             possible.push(nums);
  125.         }
  126.     }
  127.     return possible;
  128. }
  129.  
  130. console.log("Get 100",get100());
  131.  
  132. </script>
  133. </head>
  134. <body>
  135. Open Console
  136. </body>
  137. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement