メモ

yukicoderでゆるふわgolf

yukicoder No.544 Delete 7

問題はこちら
No.544 Delete 7 - yukicoder

Cで文字列処理をするのはつらいので数値として扱う。
下の位から順に見ていって、7であるようなところは6と1に分解する。それ以外はそのまま。
例えば72727なら62626+10101にする

int s,n,i;
main(){
	scanf("%d",&n);
	for(i=1;i<n;i*=10)if(n/i%10==7)s+=i;
	printf("%d %d",n-s,s);
}

もうほとんど縮めるところもないけれど、ぎゅっとして

s,n;
main(i){
	for(scanf("%d",&n);n/i;i*=10)s+=n/i%10-7?0:i;
	printf("%d %d",n-s,s);
}

80B