Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Tìm số bị thiếu trong dãy liên tiếp bằng C++

Mô tả bài toán

Cho mảng kích thước n chứa các số trong khoảng [min, min+n], thiếu một số. Tìm số thiếu.

Ví dụ

arr={4,8,5,7} → min=4, khoảng [4..8], thiếu 6.

Giải thuật (XOR)

XOR tất cả phần tử mảng và XOR tất cả số trong khoảng [min, min+n]. Kết quả XOR hai giá trị là số thiếu.

Mã nguồn C++

#include <bits/stdc++.h>
using namespace std;

int findMissingNumArr(int arr[], int n) {
    int mn = *min_element(arr, arr+n);
    int xorArr = 0, xorRange = mn;
    for (int i=0; i

Đầu ra

The missing value in the array is 6