75 lines
1.7 KiB
Markdown
75 lines
1.7 KiB
Markdown
![]() |
---
|
|||
|
id: 5
|
|||
|
localeTitle: 5900f37b1000cf542c50fe8e
|
|||
|
challengeType: 5
|
|||
|
title: 'Problem 15: Lattice paths'
|
|||
|
---
|
|||
|
|
|||
|
## Description
|
|||
|
<section id='description'>
|
|||
|
Comenzando en la esquina superior izquierda de una cuadrícula de 2 × 2, y solo pudiendo moverse hacia la derecha y hacia abajo, hay exactamente 6 rutas hacia la esquina inferior derecha.
|
|||
|
|
|||
|
<img class="img-responsive center-block" alt="un diagrama de 6 cuadrículas de 2 por 2 que muestra todas las rutas hacia la esquina inferior derecha" src="https://i.imgur.com/1Atixoj.gif">
|
|||
|
|
|||
|
¿Cuántas de estas rutas hay a través de un <code>gridSize</code> dado?
|
|||
|
</section>
|
|||
|
|
|||
|
## Instructions
|
|||
|
<section id='instructions'>
|
|||
|
|
|||
|
</section>
|
|||
|
|
|||
|
## Tests
|
|||
|
<section id='tests'>
|
|||
|
|
|||
|
```yml
|
|||
|
tests:
|
|||
|
- text: <code>latticePaths(4)</code> debe devolver 70.
|
|||
|
testString: 'assert.strictEqual(latticePaths(4), 70, "<code>latticePaths(4)</code> should return 70.");'
|
|||
|
- text: <code>latticePaths(9)</code> debe devolver 48620.
|
|||
|
testString: 'assert.strictEqual(latticePaths(9), 48620, "<code>latticePaths(9)</code> should return 48620.");'
|
|||
|
- text: <code>latticePaths(20)</code> debe devolver 137846528820.
|
|||
|
testString: 'assert.strictEqual(latticePaths(20), 137846528820, "<code>latticePaths(20)</code> should return 137846528820.");'
|
|||
|
|
|||
|
```
|
|||
|
|
|||
|
</section>
|
|||
|
|
|||
|
## Challenge Seed
|
|||
|
<section id='challengeSeed'>
|
|||
|
|
|||
|
<div id='js-seed'>
|
|||
|
|
|||
|
```js
|
|||
|
function latticePaths(gridSize) {
|
|||
|
// Good luck!
|
|||
|
return true;
|
|||
|
}
|
|||
|
|
|||
|
latticePaths(4);
|
|||
|
```
|
|||
|
|
|||
|
</div>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
</section>
|
|||
|
|
|||
|
## Solution
|
|||
|
<section id='solution'>
|
|||
|
|
|||
|
|
|||
|
```js
|
|||
|
function latticePaths(gridSize) {
|
|||
|
let paths = 1;
|
|||
|
|
|||
|
for (let i = 0; i < gridSize; i++) {
|
|||
|
paths *= (2 * gridSize) - i;
|
|||
|
paths /= i + 1;
|
|||
|
}
|
|||
|
return paths;
|
|||
|
}
|
|||
|
```
|
|||
|
|
|||
|
</section>
|