1 条题解
-
1
这个 的限制就很烦,否则我们可以构造一个 然后拼在一起。
但是这启发我们,答案一定是用什么东西拼起来的。正常的什么二进制不行,因为本题没有乘法操作,只能加法凑。
但是我们根据已有的 JavaScript 语法经验或者单纯对于给出的字符组合,发现
+[]
返回一个 Number,[]+[]
返回一个 String。执行+([]+[])
对一个空字符串求值又得到了一个 。也就是说,我们把 的每一位用 String 表示出来拼接在一起,然后转成 Number 类型即可。一个+!![]
就是 ,每一位最多拼接 次。长度显然不会超过 。Fun Fact:有一个为本题而生的网站 https://jsfuck.com/。也许下面的信息可以对于做这题给出一些启发。
#include <bits/stdc++.h> using namespace std; string s; int main() { cin >> s; cout << "+("; for (int i = 0; i < s.size(); i++) { if (i) cout << "+"; s[i] ^= '0'; cout << "("; for (int j = 1; j <= s[i]; j++) cout << string("+!![]").substr(!(j >= 1)); cout << "+[])"; } cout << ")"; cout << endl; return 0; }
- 1
信息
- ID
- 959
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 4
- 标签
- 递交数
- 11
- 已通过
- 10
- 上传者