题意:给定n元组(a1,a2,...,an),ai均为整数
,得到下一个序列为(|a1-a2|,|a2-a3|,...,|an-a1|)
,如此循环下去,必定会出现全零序列或周期循环序列。
现要求判断给定序列是全零序列(ZERO)还是周期循环序列(LOOP)。
思路:这道题也太水了吧,一开始还在想要处理有无限多的情况,就随便试了一个300,居然就AC了?
#include<bits/stdc++.h> int t,n,x; int a[20]; int judge(int n) { for(int i=0;i<n;i++) if(a[i]!=0) return 0; return 1; } int main(void) { scanf("%d",&t); while(t--) { int fla=1; scanf("%d",&n); for(int i=0;i<n;i++) scanf("%d",&a[i]); int rep=300; while(rep--) { int tem=a[0]; for(int i=0;i<n-1;i++) a[i]=abs(a[i]-a[i+1]); a[n-1]=abs(a[n-1]-tem); if(judge(n)) { fla=0; break; } } if(!fla) printf("ZERO "); else printf("LOOP "); } return 0; }