freeCodeCamp/curriculum/challenges/russian/08-coding-interview-prep/project-euler/problem-220-heighway-dragon...

2.3 KiB
Raw Blame History

id challengeType title videoUrl localeTitle
5900f4481000cf542c50ff5b 5 Problem 220: Heighway Dragon Проблема 220: Heighway Dragon

Description

Пусть D0 - двухбуквенная строка «Fa». Для n≥1 выведите Dn из Dn-1 с помощью правил перезаписи строк:

"a" → "aRbFR" "b" → "LFaLb"

Таким образом, D0 = «Fa», D1 = «FaRbFR», D2 = «FaRbFRRLFaLbFR» и т. Д.

Эти строки можно интерпретировать как инструкции для программы компьютерной графики, а «F» означает «нарисовать одну единицу», «L» означает «повернуть налево на 90 градусов», «R» означает «повернуть направо на 90 градусов», а «a "и" b "игнорируются. Начальная позиция компьютерного курсора - (0,0), направленная вверх (0,1).

Тогда Dn является экзотическим рисунком, известным как Драконский Дракон порядка n. Например, D10 показан ниже; считая каждый «F» в качестве одного шага, выделенное пятно на (18,16) представляет собой положение, достигнутое после 500 шагов.

Какова позиция курсора после 1012 шагов в D50? Дайте свой ответ в форме x, y без пробелов.

Instructions

Tests

tests:
  - text: '<code>euler220()</code> должен возвращать 139776, 963904.'
    testString: 'assert.strictEqual(euler220(), 139776, 963904, "<code>euler220()</code> should return 139776, 963904.");'

Challenge Seed

function euler220() {
  // Good luck!
  return true;
}

euler220();

Solution

// solution required