当前位置: 首页> 科技> 能源 > 洛谷B3981题解

洛谷B3981题解

时间:2025/9/9 4:46:27来源:https://blog.csdn.net/2201_75683257/article/details/141366016 浏览次数:0次

题目描述

(你不需要看懂这张图片;但如果你看懂了,会觉得它很有趣。)

JavaScript 是一种功能强大且灵活的编程语言,也是现代 Web 开发的三大支柱之一 (另外两个是 HTML 和 CSS)。灵活的 JavaScript 包含“自动类型转换”的语言特性。例如,JavaScript 认为[](空数组)和 0 是可以比较且相等的。自动类型转换带来的一个后果是我们可以只用 ()+[]! 这 6 个字符编写任意功能的 JavaScript 程序,包括游戏和交互网页。

Dr. X 请你帮他为整数 n 生成一段仅包含 ()+[]! 字符的 JavaScript 代码,且代码的运行结果恰好为整数 n。解决这个题目不需要任何 JavaScript 语言知识。压缩包中提供了人工智能实现的 jsexplorer.html 小工具,双击打开可以运行 JavaScript 代码并检查运行结果。

搬题者注:我没有收到下发的压缩包。

输入格式

输入一个非负整数 n,为你需要构造的目标数字。

输出格式

输出一行一个 JavaScript 程序,且仅由 ()+[]! 六个字符构成。在 jsexplorer.html 中执行它可以 得到整数 n。本题答案不唯一,输出任意不超过 5000 个字符的解即可。

输入输出样例

输入 #1复制

0

输出 #1复制

+[]

说明/提示

对于 60% 的数据,有 n≤1000。

对于 100% 的数据,有 0≤n≤109。

输出超过 5000 个字符将被判定为错误。注意源代码有 100KB 的大小限制。

搬题者注:这里是洛谷。源代码有 50KB 的限制。

本题原始满分为 15pts。

思路:

考虑多个1叠加,直接部分分到手,考虑正解。

由于不能是二进制,也不能暴力叠加,考虑字符串。

根据javascript的语法常识,[]+[]是一个空串,而+[]是一个0。

所以我们可以将每一位的数字都表示出来,再用字符串连接。

Code:

#include<bits/stdc++.h>
using namespace std;
string a;
int main(){cin>>a;for(int i=0;i<a.size();i++){if(i) cout<<"+";int num=a[i]-'0';cout<<"(";for(int i=0;i<num;i++) cout<<"+!([]+[])";cout<<"+[])";}
}

不是说好不用JavaScript语法的吗?

关键字:洛谷B3981题解

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: