В тестовом задании для кандидатов на должность веб-перца в конторе А.Лебедева одно из заданий меня просто прибило. Перефразируя само задание, для нормального JavaScript-кодера вот такое выражение должно не только иметь смысл, но даже равняться 22:
<script> n = 10; z = n++ - + - + - + - ++n; document.write(z); </script>
2
комментов:
Анонимный
комментирует...
Ыыыыыыыыы. Ну если бы не проверил - не поверил бы... Как-то не смотрится на корректное выражение, но с другой стороны... + и - в середине - унарные операторы (кроме первого). Итого получается
10 (n=11) - ( + - + - + - ) 12 = 22
тут количество минусов в середине нечетное, значит у 12 будет знак -, 10- (-12) = 22
2 комментов:
Ыыыыыыыыы. Ну если бы не проверил - не поверил бы... Как-то не смотрится на корректное выражение, но с другой стороны... + и - в середине - унарные операторы (кроме первого). Итого получается
10 (n=11) - ( + - + - + - ) 12 = 22
тут количество минусов в середине нечетное, значит у 12 будет знак -, 10- (-12) = 22
Эх блин, кто бы знал, что так бывает :-)
Не уверен, что твоя логика верна: сначала прирастёт ++n и станет равно 11.
Потом происходит вычитание: из 11 вычесть -11.
Потом, когда результат записался в ответ, прирастает n++ и становится равным 12, но нам это уже пофиг.
Но всё равно клято...
P.S. Жаль, * и / не катит :]
Отправить комментарий