Missing Int
template<size_t size>
unsigned long int getFirstMissingNumber(bitset<size> bits) {
for (int i = 0; i < bits.size(); i++) {
if (!bits[i]) return i;
}
}
int main() {
srand(time(nullptr));
unsigned long int integers = 4000000000;
// (pow(2, 30) * 8) - 1 = 1GB = 8 billion bits
// 4294967295 (2^32-1) = unsigned long
bitset<ULONG_MAX> bits;
bits.reset(); // set to zero
for (unsigned long int i = 1; i <= integers + 1; i++) {
unsigned long int r = rand() % ULONG_MAX;
bits.set(r - 1, true);
}
cout << getFirstMissingNumber(bits) << endl;
}Last updated