03 апреля 2006

Жуть

В тестовом задании для кандидатов на должность веб-перца в конторе А.Лебедева одно из заданий меня просто прибило. Перефразируя само задание, для нормального JavaScript-кодера вот такое выражение должно не только иметь смысл, но даже равняться 22:
<script>
n = 10;
z = n++ - + - + - + - ++n;
document.write(z);
</script>

2 комментов:

kpumuk комментирует...

Ыыыыыыыыы. Ну если бы не проверил - не поверил бы... Как-то не смотрится на корректное выражение, но с другой стороны... + и - в середине - унарные операторы (кроме первого). Итого получается

10 (n=11) - ( + - + - + - ) 12 = 22

тут количество минусов в середине нечетное, значит у 12 будет знак -, 10- (-12) = 22

Эх блин, кто бы знал, что так бывает :-)

A4 комментирует...

Не уверен, что твоя логика верна: сначала прирастёт ++n и станет равно 11.

Потом происходит вычитание: из 11 вычесть -11.

Потом, когда результат записался в ответ, прирастает n++ и становится равным 12, но нам это уже пофиг.

Но всё равно клято...

P.S. Жаль, * и / не катит :]

Отправить комментарий