PKU1316

http://acm.pku.edu.cn/JudgeOnline/problem?id=1316
問題文は大雑把に説明すると
f(ABCD) = ABCD + A + B + C + D とする。
そして、ABCD は ABCD + A + B + C + D のジェネレーターと定義する。
次に自分を作るジェネレーターが存在しない数をself numberと定義する。
あとは(1..10000)の範囲のself numberをすべて表示するだけ。


面倒なのでコードだけささっと。

a['11'],i;
main(){
	for(;++i<1e4;)
		a[i*2-(i/10+i/100+i/1000)*9]=
			a[i]||printf("%d\n",i);
}

i*2-(i/10+i/100+i/1000)*9をもうちょいスマートに書けたら良いんだけど思い浮かばず。