UVA1594 【Ducci序列 Ducci Sequence】 题解
题意
有一个有
思路
模拟这 ZERO,否则输出 LOOP。
注意题目多测。
代码
#include <bits/stdc++.h>
using namespace std;
int T, n;
int a[20], b[20]; // b 数组为替身数组
int main() {
cin >> T;
while(T--) {
scanf("%d", &n);
bool ok;
for(int i = 1; i <= n; ++i) scanf("%d", &a[i]);
for(int j = 1; j <= 1000; ++j) {
for(int i = 1; i <= n; ++i) { // 进行一次操作
if (i != n) b[i] = abs(a[i] - a[i + 1]);
else if (i == n) b[i] = abs(a[i] - a[1]);
}
for(int i = 1; i <= n; ++i) a[i] = b[i]; // 将 a 数组更新
ok = 1; // 判断是否全为 0
for(int i = 1; i <= n; ++i) {
if (a[i] != 0) ok = 0;
}
if (ok) {
puts("ZERO");
break;
}
}
if (!ok) puts("LOOP");
}
return 0;
}