相关:你好世界!斐波那契分布
如果给定的输入符合以下规范,则创建一个返回True的程序,否则为False:
其他规则:
0, 1, 1, 2, ...开始。发布于 2014-01-19 08:34:27
:?1 2{.@+.?,<}do?,=@{.48<\58<^},,@=*解释:
:?将输入存储到?中。1 2{.@+.?,<}do计算最后两个斐波那契数,直到它到达输入长度为止。该块的内容如下:“复制顶部,将第三个值旋转到顶部,添加它们,复制顶部,获取输入,获取其长度,进行比较”。?,=将最后计算的斐波那契数与输入长度进行比较。@将输入带到顶部{.48<\58<^},只过滤掉数字。该块的内容是“ASCII值是否低于48 XOR低于58?”,@=将过滤后的字符串长度与较低的斐波那契数(数位数)进行比较。*将这两个比较合并为一个布尔值。现场演示:http://golfscript.apphb.com/?c=OyIvMDU5OiIKOj8xIDJ7LkArLj8sPH1kbz8sPUB7LjQ4PFw1ODxefSwsQD0q
发布于 2014-01-19 18:37:07
脚本文件名通过命令行传递给程序。
import sys
a=[0]*2
for b in open(sys.argv[1]).read():a['/'<b<':']+=1
a,b=a
while a>0:a,b=b-a,a
print(b==1)脚本必须以名为s的文件形式编写
a=[0]*2
for b in open('s').read():a['/'<b<':']+=1
a,b=a
while a>0:a,b=b-a,a
print(b==1)发布于 2014-01-21 06:40:34
d=-(n=(i=A2lt;.read).gsub(/\d/,'').size)+i.size
a=b=1;while b<d;b=a+a=b end;p b==d&&a==n在STDIN上或作为文件名参数接受输入。
输出要么是"true",要么是"false"。
https://codegolf.stackexchange.com/questions/18887
复制相似问题