問題はこちら
No.64 XORフィボナッチ数列 - yukicoder
xorを表す記号をとする。
が成立する事に注意すると、
となるから、結局
となることが分かる。つまり、nの3での剰余について場合分けすればよい。
long a,b,n; main(){ scanf("%ld%ld%ld",&a,&b,&n); if(n%3==0)printf("%ld",a); if(n%3==1)printf("%ld",b); if(n%3==2)printf("%ld",a^b); return 0; }
n%3で0とそれ以外の区別はつくが、1と2の区別は~n%3でつけることができるので
long a,b,n; main(){ scanf("%ld%ld%ld",&a,&b,&n); n=!printf("%ld",n%3?~n%3?b:a^b:a); }
81B