首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >打印程序的程序

打印程序的程序
EN

Code Golf用户
提问于 2015-09-09 21:51:29
回答 5查看 1.5K关注 0票数 13

挑战

您的目标是编写一个打印另一个程序的程序。打印的程序应该打印另一个程序,而新的程序应该打印另一个程序,直到结束。

规则

  1. 每个程序必须小于256个字节。(如果需要更改,请留下注释)
  2. 最后一个程序必须是一个空程序。
  3. 必须有有限的程序,所以程序不能是quine。
  4. 这些程序必须以同一种语言运行。
  5. 不允许输入。
  6. 获胜的节目是一个程序,打印尽可能多的程序,包括自己。

祝好运!

EN

回答 5

Code Golf用户

发布于 2015-09-10 12:33:21

Python 2,9.7*10^229程序

代码语言:javascript
复制
O=0
if len(hex(O))<191:print"O=0x%x"%(O+1)+open(__file__).read()[-68:]
票数 4
EN

Code Golf用户

发布于 2015-09-10 14:56:35

Ruby,1.628×10^237个程序

代码语言:javascript
复制
a=0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff;_="a=%#x-1;_=%p;puts _%%[a,_]if a";puts _%[a,_]if a

与我的Perl回答方法相同,但是因为Ruby已经处理了大型it,所以存储为十六进制更容易。

Ruby,9.277×10^90程序

代码语言:javascript
复制
a=0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff;b=0xf;(b<1)&&(a-=1)&&b=eval('0x'+'f'*(74-("%x"%a).length));_="a=%#x;b=%#x;(b<1)&&(a-=1)&&b=eval('0x'+'f'*(74-('%%x'%%a).length));_=%p;puts _%%[a,b-1,_]if a";puts _%[a,b-1,_]if a

所以这次尝试与前一次奎因类似的变化略有不同,但由于所有额外的函数,我无法得到接近另一项的数字。不过,尝试另一种方法是很有趣的!

票数 4
EN

Code Golf用户

发布于 2015-09-11 16:32:01

Python,1×10^194程序

代码语言:javascript
复制
n=99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
if n:print open(__file__).read().replace(str(n),str(n-1))

这必须从一个文件中运行,而不是一个交互式的repl。这不是奎因。

感谢@海龟帮我节省了3个字节,这是更多的空间九!

感谢@poke帮助我节省2个字节,这是更多的空间九!

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

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

复制
相关文章

相似问题

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