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;
}
原题参考: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;
}
相关文章推荐
- 225. Implement Stack using Queues
- poj3368 Frequent values(RMQ)
- Java优先队列(PriorityQueue)示例
- 详解UIView的frame、bounds、center属性
- Request对象的主要方法
- javaWeb_Request_Response
- tableView,在didSelectRowAtIndexPath中,获取当前组和行
- iOS 把UILabel的text设置成斜体
- soapui与webservice接口测试[3]
- SpannableString与SpannableStringBuilder使用
- break,return和continue的区别
- AFNetWorking请求时, “Request failed: unacceptable content-type: text/html”
- UIWindow&UIWindowLevel
- KendoUI学习笔记(类图)
- Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag
- LeetCode-Wiggle Subsequence
- Android酷炫实用的开源框架(UI框架)
- 题号未知 , Array Queries 【RMQ】
- StringBuffer和StringBuilder
- Vue新手向 知乎日报 by Vue.js