题意:给你三个帽子,然后在帽子下面放一个球,然后盖住,不停的移动帽子,最后让你猜那个球在哪个帽子下面。 因为他移动的方法很固定,左边和中间的帽子交换 右边和中间的帽子交换 左边和中间的帽子交换 不停的循环。 (操作员在奇数移动(第一、第三、第五等)时总是用左壳和中壳交换,在偶数移动(第二、第四等)时总是用右壳交换。) 输入n 、 m 分别代表 交换了n次 m为球最后那个帽子下面的编号 叫你输出球最初在哪个帽子下面。 状态数就三个情况,球在左边帽子下面, 中间帽子下面 ,右边帽子下面。
注意:找规律 手动打表发现6次一循环,所以每次用n%6找到所在位置即可
#include<iostream>
using namespace std
;
long long n
;
int x
;
int a
[6][3]={{0,1,2},{1,0,2},{1,2,0},{2,1,0},{2,0,1},{0,2,1}};
int main()
{
cin
>>n
>>x
;
n
=n
%6;
cout
<<a
[n
][x
];
return 0;
}