首页 > 编程语言 > 详细

算法设计与分析:求多少对相反数(C++实现)

时间:2020-09-28 13:04:13      阅读:71      评论:0      收藏:0      [点我收藏+]

求多少对相反数。有N个非零且各不相同的整数。请你编一个程序求出它们中有多少对相反数(A和-a为一对相反数)。时间限制为1.0s,内存限制:256MB。

输入格式:

第一行包含一个正整数N (1≤N≤500)。第二行为N个用单个空格隔开的非零整数,每个数的绝对值不超过1000,保证这些整数各不相同.

输出格式:

只输出一个整数,即这N个数中包含多少对相反数.

样例输入:

5
1 2 3 -1 -2

样例输出:

2

使用vector向量容器实现

#include <iostream>
#include <vector>
#include <time.h>

using namespace std;

int solve(vector<int> v1)
{
    vector<int>::iterator it1;
    vector<int>::iterator it2;
    int num;
    int sum = 0;
    for (it1 = v1.begin(); it1 != v1.end();)  // 因为下面会把首个元素,所以不用it1++
    {
        num = *it1;   // 将容器首个元素放在num中
        v1.erase(it1);  // 删除首个元素,防止重复计数
        for (it2 = v1.begin(); it2 != v1.end(); it2++)
        {
            if (*it2 == -num)
            {
                sum++;
                break;
            }
        }
    }
    return sum;
}


int main(void)
{ 
    vector<int> v1;
    int times;
    cin >> times;
    int num;
    for (int i = 0; i < times; i++)
    {
        cin >> num;
        v1.push_back(num);
    }
    clock_t start = clock();
    cout << solve(v1) << endl;
    clock_t end = clock();
    cout << "运行时间:" << double(end - start) / CLOCKS_PER_SEC << endl;
    return 0;
}

算法设计与分析:求多少对相反数(C++实现)

原文:https://www.cnblogs.com/huangyuechujiu/p/13743106.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!