题解:B3981 [信息与未来 2024] 图灵完备
这个
但是这启发我们,答案一定是用什么东西拼起来的。正常的什么二进制不行,因为本题没有乘法操作,只能加法凑。
但是我们根据已有的 JavaScript 语法经验或者单纯对于给出的字符组合,发现 +[] 返回一个 Number,[]+[] 返回一个 String。执行 +([]+[]) 对一个空字符串求值又得到了一个 +!![] 就是
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;
}