カメヲラボ

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

Cabric Number Problem(2)

  • 惊奇的短代码(一)

↑あってる?
なんだかんだで、300バイトほどあったコードが最終的に232Bまで縮んだ。
http://acm.pku.edu.cn/JudgeOnline/problemstatus?problem_id=1350&orderby=clen&language=-1
250バイト前後で、majia001さんと情報交換できたのが大きい。彼もきっと見ていると思うので、変態コード短縮を綴っていきたいと思う。
まず、PKUではsprintfの代わりにitoaという関数が使えるようだ。さらに、strrevなる文字列の順序を入れ替える関数もあるみたいで、これを使うことで劇的に短縮できる。私はこれらを知らない上で当時の最短記録を出していたので、彼がメールをくれなかったら私は知らないままだった。ほんと、ありがとう。谢谢,majia001!

関数の使い方は、


itoa(int 値,char*文字列変数,int 基数);
strrev(char*文字列変数);
両者とも、戻り値が文字列のポインタなので非常に使いやすい。しかもヘッダのインクルードも必要無いときたもんだ。これらを使ってqsortを一回に、string.hのインクルードも消すことが出来る。

続く。