読者です 読者をやめる 読者になる 読者になる

メモ

yukicoderで遊んでいる競プロゆるふわ勢

yukicoder No.207 世界のなんとか

問題はこちら
No.207 世界のなんとか - yukicoder

調べるべき数は高々100個なので全て毎回チェックすれば良い

int main(){
	int a,b,i,t,f;
	scanf("%d%d",&a,&b);
	for(i=a;i<=b;i++){
		f=0;
		if(i%3==0)f=1;
		//3の倍数かチェック
		for(t=i;t;t/=10)if(t%10==3)f=1;
		//3を含むかチェック
		if(f==1)printf("%d\n",i);
	}
	return 0;
}

とりあえずちゃちゃっと短くする

a,b;main(p){for(scanf("%d%d",&a,&b);a<=b;a%3&&!p||printf("%d\n",a),a++)for(p=a;p%10-3&&p;p/=10);}

&&を*に、a<=bをb/aにそれぞれ書き換えて短縮

a,b;main(p){for(scanf("%d%d",&a,&b);b/a;a%3*!p||printf("%d\n",a),a++)for(p=a;p%10-3&&p;p/=10);}
||<]