這個題目挺經典,C語言的版本比較常見,利用了C語言中字符串的壹些技巧,如:
#include <stdio.h>
int main() { char *s = "#include <stdio.h>%cint main() { char *s = %c%s%c; printf( s, 10, 34, s, 34 ); return 0; }"; printf( s, 10, 34, s, 34 ); return 0; }
(註意後面的main()函數是壹個長行)
下面是Pascal版本的:
var a:string;begin a:='var a:string;begin a:=;writeln(copy(a,1,22),chr(39),a,chr(39),copy(a,23,59));end.';writeln(copy(a,1,22),chr(39),a,chr(39),copy(a,23,59));end.