题目传送门
先找规律
- 0,1,2
- 1,0,2
- 1,2,0
- 2,1,0
- 2,0,1
- 0,2,1
- 0,1,2
可知变化周期为6,所以可以将n%6,再直接模拟
代码:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,x,i,a[3]={0,1,2};
scanf("%d%d",&n,&x);//输入
n%=6;//将n%6
for(i=1;i<=n;i++)if(i%2==0)swap(a[1],a[2]);else swap(a[0],a[1]);//如果是偶数次将中间和右边交换,否则将中间和左边交换
printf("%d",a[x]);//输出
return 0;
}