循环节和所有数的总和有关。
这个猜想是经过 找规律大胆猜想:1 2 3像这样从1开始的公差为1的等差数列满足
sum = i*(i+1)/2,循环节为1。
然后就是 公差不为1 和 那种不从1开始的。
就是找规律啊找规律。。。。
#include<cstdio>
#include<iostream>
#include<cstring>
using namespace std;
int a[65538];
int main()
{
int n,ans;
while(scanf("%d",&n)!=EOF)
{
int sum = 0;
for(int i=0;i<n;i++)
{
scanf("%d",&a[i]);
sum+=a[i];
}
for(int i=1;i<=sum;i++)
{
if(sum==i*(i+1)/2)
{
ans = 1;
break;
}
else if(sum < i*(i+1)/2)
{
ans = i;
break;
}
}
printf("yes\n%d\n",ans);
}
return 0;
}