你好世界无名氏No.67825190 返回主串
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.67842682
2026-01-11(日)17:23:44 ID: vslNeW2 (PO主)
继续写点其它语言的解:
dc: 16i48P65P6CP6CP6FP20P57P6FP72P6CP64P
emacs lisp:
"\110\145\154\154\157\040\127\157\162\154\144"
以及来点瑟图()
无标题无名氏No.67857396
2026-01-13(二)19:36:47 ID: vslNeW2 (PO主)
写了 C 的解法:
// -std=c89
main(){puts("\x48\x65\x6c\x6c\x6f\x20\x57\x6f\x72\x6c\x64");}
另一个用了编译器拓展的解:
int p() __asm__("\160\162\151\156\164\146");
int main(){p("\110\145\154\154\157\040\127\157\162\154\144");}
无标题无名氏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);
}