模拟,用到了写51单片机用的亦或运算符 ^
,直接贴代码吧!
#include <cstdio>
#include <cmath>
using namespace std;
const int maxn = 16;
int a[2][maxn];
bool isloop(int n) {
int f = 0;
for(int i = 0; i < 1000; i++) {
for(int j = 0; j < n ; j++) {
if (j != n - 1) a[1^f][j] = abs(a[f][j+1] - a[f][j]);
else a[1^f][j] = abs(a[f][j] - a[f][0]);
}
int flag = 1;
for(int j = 0; j < n; j++) {
if (a[1^f][j] != 0 ) { flag = 0; break;}
}
if (flag == 1) return false;
f = 1^f;
}
return true;
}
int main() {
//freopen("input.txt", "r", stdin);
int T;
scanf("%d", &T);
while(T--) {
int n;
scanf("%d", &n);
for(int i = 0; i < n; i++)
scanf("%d", &a[0][i]);
if (isloop(n)) printf("LOOP\n");
else printf("ZERO\n");
}
return 0;
}