http://codeforces.com/problemset/problem/847/M
给出一个数列,如果该数列满足等差则输出下一个数,否则输出最后一个数。
#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
int main(){
int a[1111];
int n;
while(scanf("%d",&n)!=EOF)
{
int i,j;
for(i=1;i<=n;i++)
cin>>a[i];
if(n==2)
{
cout<<a[2]-a[1]+a[2]<<endl;
}
else {
int aa=a[2]-a[1];
bool flag=1;
for(int ss=2;ss<=n;ss++)
{
if(a[ss]-a[ss-1]!=aa)
{
flag=0;break;
}
}
if(flag)cout<<aa+a[n]<<endl;
else cout<<a[n]<<endl;
}
}
return 0;
}
本文介绍了一个简单的算法,用于判断输入的整数序列是否为等差数列,并据此输出下一个数或序列的最后一个数。通过遍历比较相邻元素之间的差值来实现等差性的判断。
2366

被折叠的 条评论
为什么被折叠?



