CodeIQの「Restricted Words」を解いたよ
https://codeiq.jp/ace/cielavenir/q431をJavaScriptで解きました。ObjectPascalでも解こうと思ったのですが、FreePascalをインストールするのが面倒だったので諦めました。
#!/usr/bin/env node console.log(function() { /* * H - 72 - 1001000 - IOOIOOO * e - 101 - 1100101 - IIOOIOI * l - 108 - 1101100 - IIOIIOO * l - 108 - 1101100 - IIOIIOO * o - 111 - 1101111 - IIOIIII * - 32 - 100000 - IOOOOO * W - 87 - 1010111 - IOIOIII * o - 111 - 1101111 - IIOIIII * r - 114 - 1110010 - IIIOOIO * l - 108 - 1101100 - IIOIIOO * d - 100 - 1100100 - IIOOIOO */ var I = +true+[], // "1" O = +[]+[], // "0" h = parseInt(I + O + O + I + O + O + O, +I << +I), e = parseInt(I + I + O + O + I + O + I, +I << +I), l = parseInt(I + I + O + I + I + O + O, +I << +I), o = parseInt(I + I + O + I + I + I + I, +I << +I), _ = parseInt( I + O + O + O + O + O, +I << +I), w = parseInt(I + O + I + O + I + I + I, +I << +I), r = parseInt(I + I + I + O + O + I + O, +I << +I), d = parseInt(I + I + O + O + I + O + O, +I << +I); return String.fromCharCode(h, e, l, l, o, _, w, o, r, l, d); }());
1と0はすぐに作れるんだけど、1を数回足して〜とかって面倒だしかっこ悪いなあと考えたあげくに2進数でごにょごにょする方法にしました。
shebang付けてるけど普通にブラウザでも動くはず。
+I << +I
って何回も書いてるけど、変数に保存すればよかったなあと今コードを見て思いました。まる。