29th
09,10
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | #define D "#define" #define P "(" #define E ")" #define X "\\" #define Q "\"" #define S " " #define N "\n" #define V "#" #define SS "S" #define SX "X" #define SQ "Q" #define SF "F" #define SD "D" #define Sn "n" #define SN "N" #define M "int main(){" #define C "}" #define H " printf(F(D) F(P) F(E) D S SX S Q X X Q N D S SQ S Q X Q Q N F(S) D S SN S Q X Sn Q N F(V) F(SS) F(SX) F(SQ) F(SF) F(SD) F(Sn) F(SN) F(M) F(C) F(H) F(R) D S SF P SX E S SD S SS S V SX S SS S SQ S SX S SQ S SN N N M N H N R N C);" #define R " return 0;" #define F(X) D S #X S Q X Q N int main(){ printf(F(D) F(P) F(E) D S SX S Q X X Q N D S SQ S Q X Q Q N F(S) D S SN S Q X Sn Q N F(V) F(SS) F(SX) F(SQ) F(SF) F(SD) F(Sn) F(SN) F(M) F(C) F(H) F(R) D S SF P SX E S SD S SS S V SX S SS S SQ S SX S SQ S SN N N M N H N R N C); return 0; } |
gcc self.c -o self ; ./self > replica.c ; diff self.c replica.c
Stimulate your brain, too!
ps. not pretty code scheme, I have to check others