17、丢失的三个数

(个人水平有限,请见谅!)

题目描述:

现在有一个数组,其值为从1到10000的连续增长的数字。出于某次偶然操作,导致这个数组中丢失了某三个元素,同时顺序被打乱,现在需要你用最快的方法找出丢失的这三个元素,并且将这三个元素根据从小到大重新拼接为一个新数字,计算其除以7的余数。 例:丢失的元素为336,10,8435,得到的新数字为103368435,除以七的余数为2。

输入描述:

输入数据为一行,包含9997个数字,空格隔开。

输出描述:

输出为一行,包含一个数字。

输入:

同题设例子输入。

输出:

2

代码示例:

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

int main()
{
    vector <int> num;
    int temp = 0, i = 0, j = 1;
    string s = "";
    
    while (cin >> temp)
        num.push_back(temp);
    
    sort(num.begin(), num.end());
    
    for (i = 0, j = 1; i < num.size(); i++, j++)
        if (num[i] != j)
            s += to_string(j++);
            
    if (j != 10001)
        for (i = j; i < 10001; i++)
            s += '0' + i;
    
    cout << atol(s.c_str()) % 7;
}

猜你喜欢

转载自blog.csdn.net/qq_30534935/article/details/82929211