このコードがすごい! 2010 小テク部門
inaniwaさんのブログに便乗してすごい小テクを使っているコードを選んでみました。
a prime number by 51b
main(n){for(;printf("%.d",83-n++););}
printf("%.d",0)が何も出力しないという仕様。
(inaniwaさんもほぼ同じコードを書いてますがこのテクニックは51bさんが先に気づいたそうなので51bさんのコードを載せています。)
sort numbers by msk
N['HxH'];main(i){for(;~scanf("%d",N)&i?N[*N]=*N:!N[++i]||printf("%d ",i)-8;);}
scanf("%d",N)で入力を読むアイディア。
Big Number by inaniwa
i=22;main(){for(;i<&i;i*=7/3.)printf("%d",i);}
&iの値を終了条件に使うという謎発想。
Factorization corrected by nai
main(b,c){for(;~scanf("%d %d\n",&b,&c);printf(""-6,b-c,c=sqrt(b*b/4-c)-~b/2));}
""-6でscanfの第一引数を再利用するテクニック。
Bigger power of two by nn
main(s){for(;gets(&s);printf("%d\n",2<<(atof()>>20)+1));}
何故か浮動小数点型をビットシフトできている謎コード。
すごいテクニックばっかりです。こんなのどこから出てくるんですかね・・・。
それでは、よいお年を。
おまけ
・選外
Collatz Problem by not
main(_,i){for(i=~i%40;i/printf("%d\n",i);)i=i%2?i*3+1:i/2;}
mainの第二引数は-16n-12になっているというのを使って通る確率を最大まで上げたコード。