問題はこちら
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