Задача для скучающих
Уважаемые любители client-side-программирования, вот вам задачка на смекалку.
alert(+[n[[n][n]]+n[[n]]+n[n+n]+n+++[n]]); // 42 Вопрос: чему же равно n? Призовой фонд за решение равен нулю в денежном эквиваленте. Ну, могу, разве что, кармой поделиться ;) UPD: В такой формулировке она, пожалуй, поинтереснее будет :) |
Спасибо за интересную задачу
решение отправляю в личку, чтобы не портить остальным удовольствие |
Читерское решение :D
var toString = Array.prototype.toString; var n = { toString: function () { Array.prototype.toString = arguments.callee; return 42; } }; alert(+[n[[n][n]]+n[[n]]+n[n+n]+n+++[n]]); Array.prototype.toString = toString; если плюсики подругому пробелами разделить, то можно еще так: var n = { "0": 14, toString: function () { return 0; } }; alert(+[n[[n][n]] + n[[n]] + n[n+n] + n+ + +[n]]); |
subzey,
оставил бы и старый вариант также негоже что только я его увидел.тем более, что предыдущая задача работала и с моим способом, а новая только с твоим)) вот еще одна сложностью чуточку повыше alert(m[[m]]+(m[eval(m[''+[m],+m]+[m]+m[eval(''+[m],+m)])]+m[+[m]]))//42 и немного усложненое alert(m[[m]]+(m[eval(m[[m],+m]+[m]+m[eval(m[m[m]]+[m],+m)])]+m[+[m]]))//42 На всякий случай: решения у примеров разные могут быть PS m-статичная переменная, без переопределенных прототипов, и их свойств так что просьба без читов.иначе теряется интерес и расставлять по-другому также ничего не надо |
Отличная задачка! Занимательное преобразование типов, так сказать :D
var n = { val: 1, toString: function(){ return this.val; }, valueOf: function(){ return this.val; }, undefined: 1, 1: 1, 2: 1 }; Как вставить код вместе к кнопочкой "Запустить" не нашёл, код букмарклета бьётся редактором: javascript:(function(){var n={val:1,toString:function(){return this.val;},valueOf:function(){return this.val;},undefined:1,1:1,2:1};alert(+[n[[n][n]]+n[[n]]+n[n+n]+n+++[n]]);})() |
zm8,
так держать! Для исполняемого js используйте такой синтаксис: [js run]…Ваш код…[/js] И… не стóит спойлить :) |
скрыл решение ;)
спасибо за подсказку к исполняемому javascript. |
subzey,
попробуешь мои задачки? ;) |
Gvozd,
ага, на выходных. Пока мне и прикладного яваскрипта хватает :) |
Часовой пояс GMT +3, время: 14:33. |