Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <html><head>
- <script type="text/javascript">
- // https://blog.svpino.com/2015/05/07/five-programming-problems-every-software-engineer-should-be-able-to-solve-in-less-than-1-hour
- // http://www.reddit.com/r/programming/comments/358tnp/five_programming_problems_every_software_engineer/
- //Helper function to create random numbered list
- function rand(num)
- {
- var q=[];
- for(var i=0;i<num;i++)
- {
- q.push(Math.random()*100|0);
- }
- return q;
- }
- //Task 1
- function sumA(list)
- {
- var i=0;
- var ret=0;
- while(i<list.length)
- {
- ret+=list[i++];
- }
- return ret;
- }
- function sumB(list)
- {
- var ret=0;
- for(var i=0;i<list.length;i++)
- {
- ret+=list[i];
- }
- return ret;
- }
- function sumC(list,start)
- {
- if(!start)
- {
- start=0;
- }
- if(start<list.length)
- {
- return list[start]+sumC(list,start+1);
- }
- return 0;
- }
- var list=rand(10);
- console.log("Sum",list,sumA(list),sumB(list),sumC(list));
- //Task 2
- function merge(listA,listB)
- {
- var ret=[];
- for(var i=0;i<listA.length && i<listB.length;i++)
- {
- ret.push(listA[i]);
- ret.push(listB[i]);
- }
- return ret;
- }
- var mergeA=rand(5);
- var mergeB=rand(5);
- console.log("Merge",mergeA,mergeB,merge(mergeA,mergeB));
- //Task 3
- function fibonnaci(count)
- {
- var fib=[0,1];
- for(var i=1;i<count;i++)
- {
- fib.push(fib[i-1]+fib[i]);
- }
- return fib;
- }
- console.log("Fibonnaci",fibonnaci(100));
- //Task 4
- function arrange(list)
- {
- var maxlen=0;
- list=list.map(function(v,i,a)
- {
- var s=v.toString();
- if(s.length>maxlen)
- {
- maxlen=s.length;
- }
- return s;
- });
- var f=function(v)
- {
- v=v.toString();
- while(v.length<maxlen)
- {
- v+="0";
- }
- return v;
- };
- return list.sort(function(a,b)
- {
- return parseInt(f(b))-parseInt(f(a));
- }).join("");
- return 0;
- }
- var arrangeA=rand(5);
- console.log("arrange",arrangeA,arrange(arrangeA));
- //Task 5
- function get100()
- {
- var list=[1,2,3,4,5,6,7,8,9];
- var possible=[];
- var s={"0":"","1":"-","2":"+"};
- for(var i=0;i<=6560;i++)
- {
- var p=i.toString(3).split("").map(function(v){return parseInt(v)});
- 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";
- if(eval(nums)===100)
- {
- possible.push(nums);
- }
- }
- return possible;
- }
- console.log("Get 100",get100());
- </script>
- </head>
- <body>
- Open Console
- </body>
- </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement