當前位置: 華文星空 > 知識

哪段程式碼最能代表程式設計師的暴力美學?

2018-03-04知識

秀一下自己之前寫過的解決"在123456789中插入+和-使得結果為100"的程式

#include <stdio.h> #include <stdlib.h> #define C10(x) if((x)==num)printf("%s = %d\n",#x,num); #define C9(x) C10(x##9);C10(x+9);C10(x-9); #define C8(x) C9(x##8);C9(x+8);C9(x-8); #define C7(x) C8(x##7);C8(x+7);C8(x-7); #define C6(x) C7(x##6);C7(x+6);C7(x-6); #define C5(x) C6(x##5);C6(x+5);C6(x-5); #define C4(x) C5(x##4);C5(x+4);C5(x-4); #define C3(x) C4(x##3);C4(x+3);C4(x-3); #define C2(x) C3(x##2);C3(x+2);C3(x-2); int main ( int argc , char ** argv ){ int num ; if ( argc == 1 ) num = 0 ; else num = atoi ( argv [ 1 ]); C2 ( 1 ); C2 ( - 1 ); return 0 ; }

結果:

123+45-67+8-9 = 100 123+4-5+67-89 = 100 123-45-67+89 = 100 123-4-5-6-7+8-9 = 100 12+3+4+5-6-7+89 = 100 12+3-4+5+67+8+9 = 100 12-3-4+5-6+7+89 = 100 1+23-4+56+7+8+9 = 100 1+23-4+5+6+78-9 = 100 1+2+34-5+67-8+9 = 100 1+2+3-4+5+6+78+9 = 100 -1+2-3+4+5+6+78+9 = 100