【发布时间】:2017-01-03 04:01:12
【问题描述】:
作为一个谜题,我昨天收到了以下 sn-p 代码的问题
为什么这会给出 773.06..?
var _ = 10, __ = 21, ___ = 38;
var _______ = { _: { "yo":_/___*_+___ }};
var ___________ = [[[{"heh":{"hehe":[[[[12,71,82,91]]]][0][0][0][1]}}]]];
var ____________ = ___________[0][0][0].heh.hehe*_+__+_______._.yo/_+___;
console.log(____________);
我不记得预期的答案,但至少是 800。一位同事简单地看了看,说这是由于浮点不精确,但我认为它应该返回 773.06 ..
正确答案是什么?
整理代码
var a = 10, b = 21, c = 38;
var d = a/c*a+c;
var e = (71*a)+b+(d/a)+c;
console.log(e);
【问题讨论】:
-
如果您将所有变量名称从
_更改为a, b, c或类似的以提高可读性,将对人们有很大帮助 -
这个代码是高尔夫吗?
-
好像孩子们在玩键盘
-
@EatPeanutButter 如果您想查看它是否返回 800 v 773.06 b/c 的浮点错误,为什么要让这个问题难以阅读?
-
这可能是一个混淆竞赛条目。 :) 它基本上或多或少 (71 * 10) + 21 + ((10 / 38 * 10 + 38) / 10) + 38,这给了我 710 + 21 + 40,63 + 38 = 809,63 但我可能用过38 而不是 20,因为我 cba 计算_bars。 :)
标签: javascript arithmetic-expressions deobfuscation