首页 > 代码库 > 华为机试—等差数列
华为机试—等差数列
请写一个程序,判断给定整数序列能否构成等差数列。
输入说明:多组数据,每组输入数据由两行构成,第一行只有一个整数n(<1000),表示序列长度(即序列中整数的个数,0表示输入结束),第二行为n个整数,每个整数的取值区间都为[-32768----32767],整数之间以空格或挑格间隔。
输出说明:对于每一组数据,输出一个yes或no,表示该序列能否构成等差数列。
6
23 15 4 18 35 11
3
3 1 2
0
no
yes
#include <iostream> #include <vector> #include <string> using namespace std; int main() { vector<string> s; int n,x,i,j,t; int a[1000]; cin>>n; while(n){ for(i=0;i<n;i++) cin>>a[i]; for(j=0;j<n;j++) for(i=0;i<n-j-1;i++) if(a[i]>a[i+1]) { t=a[i]; a[i]=a[i+1]; a[i+1]=t; } x=a[1]-a[0]; for(i=0;i<n;i++) { if(a[i]-a[0]!=x*i){ //cout<<"no"<<endl; s.push_back("no"); break;} if(i==n-1) //cout<<"yes"<<endl; s.push_back("yes"); } cin>>n; } for(int k=0;k<s.size();k++) cout<<s[k]<<endl; return 0; }
华为机试—等差数列
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。