Другие языки программирования и технологии

Помогите, пожалуйста, написать программу на C++.

В массиве имеется n различных чисел из диапазона [1; n+1] (т. е. встречаются
все числа, кроме одного). Написать программу, которая выясняет какого
именно элемента не хватает (сложность О (n)).
написать то не проблема... Только что за условие. <Какого
именно элемента не хватает >
Я даже стесняюсь спросить чем его на истину проверять?: -)
VV
Vanya Vasil'ev
52 813
Лучший ответ
Максим Жуковец Я вообще не шарю)
#include <iostream>
using namespace std;
unsigned skipped(unsigned* v, const size_t n) {
auto sv = 0ULL;
for (auto i = 0U; i < n; ++i) sv += v[i];
auto s = (n + 1ULL) * (n + 2ULL) / 2ULL;
return unsigned(s - sv);
}
int main() {
unsigned box[] = { 1, 3, 5, 4, 9, 6, 8, 2 };
auto number = skipped(box, size(box));
cout << "Result: " << number;
cout.put('\n');
system("pause");
}
Сергей Лисичик
Сергей Лисичик
95 461
bool isBelong(vector < int > arr, int num)
{
for(auto& & it = arr.begin(); it != arr.end();; ++it) {
    if (*it == num) {
       return true;
    }
return false;
}

int main()
{
....
for(int i = 1; i < = n+1; ++i) {
    if (!isBelong(arr, i)) {
       k = i;
        break;
    }
....
}
NZ
Nurbergen Zhaliev
3 300
Александр Иванов cсложность этого решения O(n^2)
суммируешь все числа от 1 до n + 1 - пусть это будет total_sum - сложность O(n)
суммируешь все числа массива - назовем это array_sum - сложность O(n)
число которое ищем = total_sum - array_sum
общая сложность O(n) + O(n) = 2O(n) (константу можно опустить т. е. O(n))