你好世界无名氏No.67825190 只看PO
2026-01-08(四)22:55:46 ID:vslNeW2 回应
突然想到了一个很好玩的游戏:
写一个输出 Hello World 的程序,但程序的源码中不允许出现 HeloWrd 这几个字母(像 C 这些包括头文件/函数名等)。
由于我平时写 APL/J/K 比较多,所以先写了一个用 K (https://en.wikipedia.org/wiki/K_(programming_language)) 的解:
m@n:~/.../projects/tmp$ ngnk
`c$"Qnuux)`x{um"-9
"Hello World"
不知道其它语言有没有更短的解法゚ ∀゚)ノ
无标题无名氏No.67925146
2026-01-23(五)08:35:43 ID: 5ZiaCGX
c的话感觉是刚学c语言的大学生都能写出来啊
我不写c,因此我的认知应该跟大学生差不多,我第一反应是凯撒密码式的方法,甚至不用手搓ascii……
helloworld所有字母往前推一位,得到密文以规避这些字母明文出现
强制类型转换为int,全部加一后转回去char进行输出
无标题无名氏No.67928329
2026-01-23(五)17:46:21 ID: vslNeW2 (PO主)
>>No.67925146
好文明,试着写了:
int main() {
int s4[0,4];
int k = 1 + (1 << 8) + (1 << 16) + (1 << 24);
s0[0,0] = 71 + (100 << 8) + (107 << 16) + (107 << 24);
s1[0,1] = 110 + (31 << 8) + (86 << 16) + (110 << 24);
s2[0,2] = 113 + (107 << 8) + (99 << 16) + (255 << 24);
s0[0,0] = s0[0,0] + k;
s0[0,1] = s0[0,1] + k;
s0[0,2] = s2[0,2] + k;
puts(s);
}