зачем что-то подбирать?Алгоритм приведения числа к бинарному виду через остаток от деления не подходит, потому что нужно подобрать сумму из отрицательных и положительных чисел.
-4 / -2 = 2 rem 0 => 0
2 / -2 = -1 rem 0 => 0
-1 / -2 = 0 rem -1 => 1
1 / -2 = -0 rem 1 => 1
=> -4 = 1100
4 / -2 = -2 rem 0 => 0
-2 / -2 = 1 rem 0 => 0
1 / -2 = -0 rem 1 => 1
=> 4 = 0100
с черепашкой я часа два решал) решение очень простое на самом деле@grigori, ващет за 10-15 минут ) кода там немного. суть алгоритма если вывести. а так, да. у тебя уровень другой, чтобы решать эти задачки(в смысле уровень выше чем обычные претенденты на топтал). как @Redjik, говорил мне, они для того чтобы отделить натягивателей шаблонов от более-менее программистов. там дают 3 задачи на полтора часа. и достаточно решить одну и хотя бы какого-нибудь результата добиться в другой.
@Redjik, а вот с черепашкой - интереснее. я помоему не тот путь выбрал, когда решал. напиши в приват как там решалось если не лень.
В топтале следующий после кодилити этап такой же. Кодилити там для автоматического отсева, у них просто не хватит ресурсов проводить скайп-интервью с каждым, кто эпплаится, перед этим прочитав книжку "джаваскрипт за 24 часа".У них это было в ходе skype-звонка в режиме расшаривания экрана, человек смотрел как я пишу код, и этого им вполне хватило.
Нашел скриншот. Есть там про индекс size в условии.другая задача была попроще, но с неполным описанием:
* Два входных параметра: int X, и массив A [0=>int, ...].
Надо найти ключ в массиве, который указывает на позицию, по которой можно разделить массив на 2 части.
В левой части должно быть столько же значений Х, сколько в правой значений не-Х.
т.е. для [5,5,1,2,3,5] и X=5, результат 4. Получается при разделении 2 значения "5" в левой части, и два значения не 5 в правой.
Некорректность постановки в том, что не указано, что возвращать, если значения Х нет вообще. По логике получается, что слева должен быть весь массив, но индекса size не существует, а по задаче нужно вернуть индекс массива.