1556 海拔高度之谜
经验值:1200 时间限制:1000毫秒
题目描述 Description
小王奉命去测绘A地附近的地形,要求对附近地形的海拔高度进行测量,一共要测量n个数据,经过测量和计算,小王发现两个连续数值之间差的绝对值包括了[1,n-1]之间的所有整数,如1 4 2 3的差的绝对值分别为:3,2,1。现在小王去B地继续测量任务,请问他在这里测量的数据能满足这个原理吗?
输入描述 Input Description
以一个整数n(1<=n<=1000)开始,接下来n个空格隔开的在[-100,100]之间的整数
输出描述 Output Description
输出一行若该数组符合规律则输出"Yes",否则输出"No"
样例输入 Sample Input
样例一: 4 1 4 2 3 样例二: 5 1 4 2 -1 6
样例输出 Sample Output
样例一: Yes 样例二: No
你们看着办,这题我问了3次了
#include<bits/stdc++.h>
using namespace std;
bool cmp(int a,int b){
return a<b;
}
int main(){
int n,a[1005],b[1005];
cin>>n;
for(int i=1; i<=n; i++)
cin>>a[i];
for(int i=1; i<=n; i++)
b[i]=abs(a[i]-a[i+1]);
sort(a+1,a+n+1,cmp);
sort(b+1,b+n+1,cmp);
bool f;
for(int i=1; i<=n-1; i++){
f=0;
if (a[i]==b[i])
f=1;
if (f==0) break;
}
if (f==0) cout<<"No";
else cout<<"Yes";
return 0;
}
武建豪在2021-06-14 22:28:53追加了内容
ding
武建豪在2021-06-15 19:16:13追加了内容
ding
武建豪在2021-06-17 10:26:03追加了内容
ding
int a[1005],b[1005];//必须定义在外面
int main(){
int n;
输入>>n;
for(1~n){
输入>>a[i];
}//输入
for(1~n-1){
b[i]=abs(a[i]-a[i+1]);
}//算差,记录
for(1~n-1){
bool f=0;//定义标志位
for(1~n-1){
if(b[j]==i){
f=1;//如果成立,标志位=1
}
}
if(f==0){
输出<<"No";//否则输出”No”,并结束
return 0;
}
}
输出<<"Yes";
其他只用加源代码即可,求采纳,谢谢!!!
