カメヲラボ

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

Cabric Number Problem(1)

  • ワカタ

どうやら4digitでない値が多数含まれているようで、それらはすべてNoとしなければならない模様。それから、0001みたいな入力でも4digitとしないみたいだ。
というわけで、一応通ったコードを晒しておく。
まだまだ縮むみたいなので、自身のあるコーダーはチャレンジして欲しい。

#include<string.h>

q(char*a,char*b){return*b-*a;}

main(n,s,x,c){
for(;scanf("%d",&n),~n;printf(c?"Ok!! %d times\n":"No!!\n",c-1))
	for(c=n%1111*printf("N=%d:\n",n)&&n>999&n<1e4;c*n&&n-6174;++c)
		sprintf(s,"%4d",n),
		qsort(s,4,1,strcmp),
		x=atoi(s),
		qsort(s,4,1,q),
		printf("%d-%d=%d\n",n+x,x,n=atoi(s)-x);
}

2回ソートしているのがイケてない気がするのだけど、何か良いアイデアないかなぁ・・・。