• CCF认证-201712-1


    问题描述
      给定n个数,请找出其中相差(差的绝对值)最小的两个数,输出它们的差值的绝对值。
    输入格式
      输入第一行包含一个整数n
      第二行包含n个正整数,相邻整数之间使用一个空格分隔。
    输出格式
      输出一个整数,表示答案。
    样例输入
    5
    1 5 4 8 20
    样例输出
    1
    样例说明
      相差最小的两个数是5和4,它们之间的差值是1。
    样例输入
    5
    9 3 6 1 3
    样例输出
    0
    样例说明
      有两个相同的数3,它们之间的差值是0.
    数据规模和约定
      对于所有评测用例,2 ≤ n ≤ 1000,每个给定的整数都是不超过10000的正整数。
    代码:
    #include<iostream>
    #include<math.h>
    using namespace std;
    int main()
    {
        int Min=100000;//定义初始比较值
        int i, j, k = 0;
        int a[1005], b[1005];
        int N;
        cin >> N;
        for (i = 0; i < N; i++)
            cin >> a[i];
        for (i = 0; i < N; i++)
        {
            for (j = 0; j < N; j++)
            {
                if (i != j)
                {
                    int gapvalue=abs(a[i] - a[j]);//计算差值
                    if (Min>gapvalue)
                    {
                        Min = gapvalue;//比较最小值
                    }
                }
            }
        }
        cout << Min << endl;
        return 0;
    }
    #include<iostream>
    #include<algorithm>
    #include<vector>
    
    
    
    using namespace std;
    
    int main(){
        vector<int> list;
        int N;
        cin>>N;
    
        int temp;
        while(N--){
            cin>>temp;
            list.push_back(temp);
        }
    
        int mini = 10010;
        for(int i=0;i<list.size();i++){
            for(int j=i+1; j<list.size(); j++){
                int gap = abs(list[i]-list[j]);
                if(mini>gap){
                    mini = gap;
                }
            }
        }
    
        cout<<mini;
    
        return 0;
    }
    以大多数人努力程度之低,根本轮不到去拼天赋~
  • 相关阅读:
    Linux内存分析
    mysql 分表
    安装YCM
    c/c++ 之静态库
    ubuntu20 宽带连接
    数据对齐
    计算机中浮点数的表示
    整数的表示
    信息的储存
    SparseTable ST表
  • 原文地址:https://www.cnblogs.com/gcter/p/8475529.html
Copyright © 2020-2023  润新知