カメヲラボ

主にプログラミングとお勉強全般について書いてます

Cabric Number Problem(7)

  • 惊奇的短代码(六) 最短コード222B

さらに短縮222バイト。
shinichiro_hさんのアイデアを十分に生かすために、itoaをやめてsprintfを使う方法に戻した。sprintfだと返り値が文字列の長さになっているので、3バイト短縮になる。あとはprintfの部分を2バイトほど削って、無駄なところはなくなったように思われる。

strcmp();
main(t,s,x,n){
  for(;scanf("%d",&n)<n;printf(t?"Ok!! %d times\n":"No!!\n",-t))
    for(t=printf("N=%d:\n",n)!=8;n%98*n%101&&--t;
      printf("%s-%d=%d\n",s,x,n=atoi(strrev(s))-x))
      qsort(s,sprintf(s,"%d",n),1,strcmp),x=atoi(s);
}

どないでしょ?