首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Quine...but移位1

Quine...but移位1
EN

Code Golf用户
提问于 2014-01-05 03:44:03
回答 14查看 1.2K关注 0票数 15

参考十进制中可打印的ASCII字符码,我们知道,从32到126,我们有32为(空格)的可打印字符。您的挑战是编写一个只使用从32个字符到125个字符(不包括126个字符)的程序,该程序在执行时打印自己的源代码,但源代码中的每个字符的ASCII代码增加一个。

例如,如果源代码是

代码语言:javascript
复制
main(){printf("Hello World");}

它的产出是

代码语言:javascript
复制
nbjo)*|qsjoug)#Ifmmp!Xpsme#*<~

禁止下列规定:

  • 读取/写入/使用任何外部文件或存储(包括互联网)
  • 读取/回显您自己的源代码
  • 源代码少于2个字符(他们没有乐趣)。必须大于或等于2。

这是一场受欢迎的比赛,在等待了至少两周之后,无论用哪种语言,以最高得票率的答案都是以较小的字符数为平局者而获胜的。

EN

回答 14

Code Golf用户

回答已采纳

发布于 2014-01-05 08:52:18

Python (27个字符)

在Python中,以下脚本将输出所需的结果:

代码语言:javascript
复制
TzoubyFssps;!jowbmje!tzouby

是!它的产出如下:

代码语言:javascript
复制
SyntaxError: invalid syntax
票数 47
EN

Code Golf用户

发布于 2014-01-05 08:33:40

哈?,5个字符

代码语言:javascript
复制
Ntbg 

请注意,第五个字符是Ntbg之后的空格。这与我以前的答案之一中的技巧是一样的。Ntbg是一个无效的路径,所以解释器将输出Ouch!,您应该这样运行它:

代码语言:javascript
复制
huh.exe Ntbg 
票数 14
EN

Code Golf用户

发布于 2014-01-05 18:03:14

GolfScript,15 chars

代码语言:javascript
复制
{`{)}%"/2+"}.1*

输出:

代码语言:javascript
复制
|a|*~,#~/2+

在网上试试。

一个非常简单的解决方案,基于我在我参加“旋转奎因”挑战中使用的技术。一个棘手的细节是字符~ (ASCII 126)被挑战规则所禁止,所以我不能使用它来执行我的代码块。幸运的是,1*可以用作它的同义词。

解释:

代码块{`{)}%"/2+"}.复制,第二个副本由1*执行(技术上是一个迭代循环),另一个副本留在堆栈上。在代码块中,`收缩代码块,{)}%循环其字符( ASCII代码),每个字符递增。最后,"/2+"将文字字符串/2+ (由一个.1*移位)推到堆栈上。在程序的末尾,GolfScript解释器会自动打印堆栈上的所有内容。

Ps。是的,我知道这是人气-竞赛而不是严格的密码-高尔夫,但是我还能用GolfScript - ASCII艺术做什么呢?

票数 6
EN
页面原文内容由Code Golf提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codegolf.stackexchange.com/questions/17569

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档