您的位置:首页 > 产品设计 > UI/UE

UVa1594 Ducci Sequence Ducci序列(习题5-2)

2016-07-28 15:13 381 查看
这道题一开始还以为很难,后来思路通了之后发现自己真的想的太多了,很简单,直接判断是否存在ZERO的情况,如果在遍历数次之后不存在,则输出ZERO,一开始提交的时候忘记修改调试数据,把循环次数写成20次,改成1000次后直接AC。

原题参考:UVa1594  Ducci
Sequence

思路:一个不定长数组,储存现在的数组,一个整数变量储存数组第一位(便于计算数组最后一位),然后把当前数组加和,如果和为0则输出ZERO,否则继续循环。

代码:

#include<iostream>
#include<cmath>
#include<cstdio>
#include<vector>
using namespace std;

vector<int> tall;
int main()
{
int k;
cin>>k;
while(k--)
{
tall.clear();
int all;
cin>>all;
while (all--)
{
int x;
cin>>x;
tall.push_back(x);
}
int yes=1,n=1;
int kase = 1000;
while (kase--)
{

int sum1=0;
for(int i=0;i<tall.size();i++)
sum1 += tall[i];
if (sum1 == 0)
{yes = 0; break;}
else
{
int tmp = tall[0];
for(int i=0;i<tall.size()-1;i++)
{
tall[i] = abs(tall[i]-tall[i+1]);
}
tall[tall.size()-1] = abs(tall[tall.size()-1]-tmp);
}
}
if (yes==0) cout<<"ZERO"<<endl;
else cout<<"LOOP"<<endl;
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: