问题标题: 酷町堂:1556   海拔高度之谜

0
0
已解决
武建豪
武建豪
中级天翼
中级天翼

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


0
已采纳
李子杰
李子杰
资深光能
资深光能
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";

其他只用加源代码即可,求采纳,谢谢!!!

 

我要回答