メモ

yukicoderでゆるふわgolf

yukicoder No.400 鏡

問題はこちら
No.400 鏡 - yukicoder

後ろから順に左右を逆にして出力

int main(){
	char s[99];
	int n,i;
	gets(s);
	n=strlen(s);
	for(i=n;i--;)putchar(s[i]=='<'?'>':'<');
	return 0;
}

'>'と'<'の切り替えは bitxor 2 で出来る

char s[];i;main(){for(i=strlen(gets(s));i--;putchar(s[i]^2));}

そう言えば逆順の処理は再帰と相性が良いのだった

main(s){s=getchar();s-10&&main()*putchar(s^2);return 0;}

mainの返り値を調整

x;main(s){s=getchar();x=s-10&&main()*putchar(s^2);}

51B


2017/07/29追記
改行の区別は&4で可能
コンパイラのバージョンアップによる4Bと合わせて5B短縮

main(s){s=getchar();s&4&&main()*putchar(s^2);}

46B