您的目标:编写一段代码,得到经典的结果:“ Hello,world!” 被打印到STDOUT或同等版本。
规则:代码必须完全以ASCII码打印。所有代码都必须可以使用-删除任何单个计数字符都必须更改结果或导致代码无法使用。分配后必须使用所有变量。字符和字符串文字必须是输出所必需的-也就是说,用另一个字符替换任何字符文字或字符串文字中的任何字符都必须能够更改结果(而不是通过转义序列的作用-用反斜杠替换字符)或同等学历)
(注意:最终规则已编辑)
得分:这是有趣的地方。根据典型的代码保龄球规则,最高分数取决于字符数。但是重复使用字符会导致扣分。特别...
- 重复使用任何字母数字字符(az,AZ,0-9)将导致每次重复扣除3分(首次使用不会导致扣除)。
- 重复使用基本标点符号([!?.-,“:';])-包括方括号-将导致每次重复扣除2分。
- 重复使用其他ASCII字符{`〜@#$%^&* _ + = | \ /> <}-包括大括号-将导致每次重复减少4点。
- 重复使用空格,制表符和换行符将导致每次重复扣除1分。也就是说,只有第一次使用空格,制表符或换行符才会计入总计。
注意:尽管标记注释开始/结束的字符确实占注释的总和,但注释不会计入总数。例如,在C / C ++中,如果您有/* This is a comment */
,则它将计算两个斜杠和两个星号,但它们之间没有任何区别。
一些示例(注意:使用Julia作为示例语言)...
print("Hello, world!");
可见字符总数:22
包含空格:+1
重复的字母数字:ll表示-12
重复的标点:-2表示“
最终分数:22 + 1-12-2 = 9
print("Hel",char(108),"o, wor",0x108,"d!"); # 0x108 makes a Uint8 that prints as ASCII
总字符数:43(不包括#后的任何字符,它是注释字符)
包含空格:+1
重复的字母数字:rr1008 -18
重复的标点符号:()“”“”“ ,,,,
Final得分:43 + 1-24-18 = 2
xy=STDOUT
m="Hello, world!"
print(xy,m);
可见字符总数:37
包含换行符:+1
包含空格:+1
重复的字母数字:xyllor的-18
重复的标点符号:“ -4”,
重复的其他ASCII字符:-4代表=
最终得分:37 + 1 + 1-18-4 -4 = 13
几段无效的代码...
x=2;print("Hello,world!")
问题:x
已分配但未使用。
print("Hello,"*" world!")
问题:*
是不必要的,没有它的结果将是相同的。
k=1
if k>0
print("Hello, world!")
else
print("abcghjmquvxyzABCDEFGIJKLMNOPQRSTUVWXYZ_+*-&|")
end
问题:第二个print
命令将无法运行。另外,在第二个print
命令中删除引号中的字符不会更改输出。
x="Hello, world!";
print(x)
问题:删除换行符不会改变结果或引起错误(在Julia中,仅当同一行上有多个命令时才需要分号,否则将取消返回值)。
print("Hellos\b, world!")
问题:s
字符不会影响结果,因为它会被擦除\b
。如果通过代码("Hello",char(100),"\b, world!"
)完成,则可以接受,但不能通过字符串文字或字符文字来完成。
便捷的分数计算器 -http : //jsfiddle.net/4t7qG/2/-感谢Doorknob