freeCodeCamp/curriculum/challenges/russian/08-coding-interview-prep/project-euler/problem-277-a-modified-coll...

2.5 KiB
Raw Blame History

id challengeType title forumTopicId localeTitle
5900f4811000cf542c50ff94 5 Problem 277: A Modified Collatz sequence 301927 Задача 277: Измененная последовательность Collatz

Description

Измененная последовательность целых чисел Collatz получается из начального значения a1 следующим образом:

an + 1 = an / 3, если an делится на 3. Мы будем обозначать это как большой шаг вниз, «D».

an + 1 = (4an + 2) / 3, если деленная на 3 дает остаток от 1. Мы будем обозначать это как восходящий шаг «U».

an + 1 = (2an - 1) / 3, если деленная на 3 дает остаток от 2. Мы будем обозначать это как небольшой шаг вниз «d».

Последовательность завершается при некотором an = 1.

Для любого целого числа мы можем перечислить последовательность шагов. Например, если a1 = 231, то последовательность {an} = {231,77,51,17,11,7,10,14,9,3,1} соответствует этапам «DdDddUUdDD».

Конечно, есть и другие последовательности, начинающиеся с той же последовательности «DdDddUUdDD ....». Например, если a1 = 1004064, то последовательностью является DdDddUUdDDDUDUDUUdDdUUDDDUdDD. Фактически, 1004064 является наименьшим возможным a1> 106, которое начинается с последовательности DdDddUUdDD.

Каков самый маленький a1> 1015, который начинается с последовательности «UDDDUdddDDUDDddDdDddDDUDDdUUDd»?

Instructions

Tests

tests:
  - text: <code>euler277()</code> should return 1125977393124310.
    testString: assert.strictEqual(euler277(), 1125977393124310);

Challenge Seed

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

euler277();

Solution

// solution required