freeCodeCamp/curriculum/challenges/english/10-coding-interview-prep/project-euler/problem-202-laserbeam.md

47 lines
1.3 KiB
Markdown

---
id: 5900f4371000cf542c50ff49
title: 'Problem 202: Laserbeam'
challengeType: 5
forumTopicId: 301843
dashedName: problem-202-laserbeam
---
# --description--
Three mirrors are arranged in the shape of an equilateral triangle, with their reflective surfaces pointing inwards. There is an infinitesimal gap at each vertex of the triangle through which a laser beam may pass.
Label the vertices $A$, $B$ and $C$. There are 2 ways in which a laser beam may enter vertex $C$, bounce off 11 surfaces, then exit through the same vertex: one way is shown below; the other is the reverse of that.
<img class="img-responsive center-block" alt="one way in which laser beam may enter vertex C, bounce off 11 surfaces and exit through the same vertex" src="https://cdn.freecodecamp.org/curriculum/project-euler/laserbeam.gif" style="background-color: white; padding: 10px;">
There are 80840 ways in which a laser beam may enter vertex $C$, bounce off 1000001 surfaces, then exit through the same vertex.
In how many ways can a laser beam enter at vertex $C$, bounce off 12017639147 surfaces, then exit through the same vertex?
# --hints--
`laserbeam()` should return `1209002624`.
```js
assert.strictEqual(laserbeam(), 1209002624);
```
# --seed--
## --seed-contents--
```js
function laserbeam() {
return true;
}
laserbeam();
```
# --solutions--
```js
// solution required
```