Skip to content

Commit

Permalink
Add my own recursive solution
Browse files Browse the repository at this point in the history
  • Loading branch information
ari7946 committed Oct 14, 2019
1 parent d7cf629 commit 7d37b0f
Showing 1 changed file with 27 additions and 11 deletions.
38 changes: 27 additions & 11 deletions exercises/steps/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -53,20 +53,36 @@
// http://www.pythontutor.com/javascript.html#code=function%20steps%28n%29%20%7B%0A%20%20for%20%28let%20row%20%3D%200%3B%20row%20%3C%20n%3B%20row%2B%2B%29%20%7B%0A%20%20%20%20let%20stair%20%3D%20''%3B%0A%0A%20%20%20%20for%20%28let%20column%20%3D%200%3B%20column%20%3C%20n%3B%20column%2B%2B%29%20%7B%0A%20%20%20%20%20%20if%20%28column%20%3C%3D%20row%29%20%7B%0A%20%20%20%20%20%20%20%20stair%20%2B%3D%20'%23'%3B%0A%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20stair%20%2B%3D%20'%20'%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%20%20%0A%20%20%20%20console.log%28stair%29%0A%20%20%7D%0A%7D%0A%0Asteps%283%29%3B&curInstr=57&mode=display&origin=opt-frontend.js&py=js&rawInputLstJSON=%5B%5D


function steps(n, row = 0, stair = '') {
if (n === row) {
return;
}
// function steps(n, row = 0, stair = '') {
// if (n === row) {
// return;
// }

if (n === stair.length) {
console.log(stair);
return steps(n, row + 1);
}
// if (n === stair.length) {
// console.log(stair);
// return steps(n, row + 1);
// }

const add = stair.length <= row ? '#' : ' ';
steps(n, row, stair + add);
}
// const add = stair.length <= row ? '#' : ' ';
// steps(n, row, stair + add);
// }
// pythontutor for above solution
// http://www.pythontutor.com/live.html#code=function%20steps%28n,%20row%20%3D%200,%20stair%20%3D%20''%29%20%7B%0A%20%20if%20%28n%20%3D%3D%3D%20row%29%20%7B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%0A%20%20if%20%28n%20%3D%3D%3D%20stair.length%29%20%7B%0A%20%20%20%20console.log%28stair%29%3B%0A%20%20%20%20return%20steps%28n,%20row%20%2B%201%29%3B%0A%20%20%7D%0A%0A%20%20const%20add%20%3D%20stair.length%20%3C%3D%20row%20%3F%20'%23'%20%3A%20'%20'%3B%0A%20%20steps%28n,%20row,%20stair%20%2B%20add%29%3B%0A%7D%0A%0Asteps%283%29%3B&cumulative=false&curInstr=64&heapPrimitives=nevernest&mode=display&origin=opt-live.js&py=js&rawInputLstJSON=%5B%5D&textReferences=false

function steps(n, initialValues = [], flag = true, index = 0) {
if (index === n) {
return;
} else if (flag) {
let num = n;
while (num) {
initialValues.push(" ");
num--;
}
flag = false;
}
initialValues[index] = '#';
console.log(initialValues.join(''));
steps(n, initialValues, flag, ++index);
}

module.exports = steps;

0 comments on commit 7d37b0f

Please sign in to comment.