Files
freeCodeCamp/curriculum/challenges/japanese/10-coding-interview-prep/project-euler/problem-220-heighway-dragon.md

58 lines
2.0 KiB
Markdown
Raw Permalink Normal View History

---
id: 5900f4481000cf542c50ff5b
title: '問題 220: ハイウェイドラゴン'
challengeType: 5
forumTopicId: 301863
dashedName: problem-220-heighway-dragon
---
# --description--
$D_0$ を 2 文字の文字列 "Fa" とします。 $n ≥ 1$ のとき、次の変換規則によって $D_{n - 1}$ から $D_n$ を得ます。
- "a" → "aRbFR"
- "b" → "LFaLb"
したがって、$D_0$ = "Fa", $D_1$ = "FaRbFR", $D_2$ = "FaRbFRRLFaLbFR" などとなります。
これらの文字列は、コンピュータグラフィックスプログラムに対する命令として解釈できます。"F" は「1単位、前へ描け」、"L" は「90 度左を向け」、"R" は「90 度右を向け」を意味し、"a" と "b" は無視されます。 コンピューターカーソルの最初の位置は (0,0) で、上の (0,1) を向いています。
$D_n$ は、$n$ 次のハイウェイドラゴンとして知られる風変わりな図です。 例えば、$D_{10}$ は下図のようになります。それぞれの "F" を 1 ステップと数え、(18,16) の色付きの点は 500 ステップで到達した位置です。
<img class="img-responsive center-block" alt="500 ステップ後のハイグウェイドラゴンの図" src="https://cdn.freecodecamp.org/curriculum/project-euler/heighway-dragon.gif" style="background-color: white; padding: 10px;" />
$D_{50} $ において、${10}^{12}$ ステップ後のカーソルの位置を求めなさい。 回答は、スペースなしの `x,y` 形式の文字列にすること。
# --hints--
`heighwayDragon()` は文字列を返す必要があります。
```js
assert(typeof heighwayDragon() === 'string');
```
`heighwayDragon()` は文字列 `139776,963904` を返す必要があります。
```js
assert.strictEqual(heighwayDragon(), '139776,963904');
```
# --seed--
## --seed-contents--
```js
function heighwayDragon() {
return true;
}
heighwayDragon();
```
# --solutions--
```js
// solution required
```