B3981 [信息与未来 2024] 图灵完备

题目描述

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

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

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

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

输入格式

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

输出格式

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

输入输出样例

输入 #1复制

0

输出 #1复制

+[]

说明/提示

对于 60%60% 的数据,有 N<=1000

对于 100%100% 的数据,有 0<=N<=10^9

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

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

本题原始满分为 15pts。

AC代码:

//前提条件:0=+[]
//前提条件:1=+!![]
//前提条件:'1'=[+!![]]
#include <bits/stdc++.h>
using namespace std;
string x;
int main(){
	cin>>x;
	cout<<"(+[";
	for(int i=0;i<x.size();i++){
		cout<<"[";
		int num=x[i]-'0';
		if(num!=0){
			for(int j=1;j<=num;j++){
				cout<<"+!![]";
			}
		}
		else{
			cout<<"+[]";
		}
		cout<<"]";
		if(i<x.size()-1){
			cout<<"+";
		}
	}
	cout<<"])";//打一层括号保险
	return 0;
}

 提交记录:

记录详情 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值