How to find if a 6-digit random number contains 3 random digits in C++

1 Answer

0 votes
#include <iostream>
#include <ctime>
#include <string>

// Generate a random 6‑digit number
int generateSixDigit() {
    return 100000 + rand() % 900000;
}

// Generate a random digit (0–9)
int generateDigit() {
    return rand() % 10;
}

// Check if a number contains a specific digit
bool containsDigit(int number, int digit) {
    std::string s = std::to_string(number);
    char d = '0' + digit;
    
    return s.find(d) != std::string::npos;
}

// Check if number contains all 3 digits
bool containsAllDigits(int number, int d1, int d2, int d3) {
    return containsDigit(number, d1) &&
           containsDigit(number, d2) &&
           containsDigit(number, d3);
}

int main() {
    srand(time(nullptr));

    int six = generateSixDigit();
    int d1 = generateDigit();
    int d2 = generateDigit();
    int d3 = generateDigit();

    std::cout << "6‑digit number: " << six << "\n";
    std::cout << "Digits: " << d1 << " " << d2 << " " << d3 << "\n";

    if (containsAllDigits(six, d1, d2, d3))
        std::cout << "The number contains all 3 digits.\n";
    else
        std::cout << "The number does NOT contain all 3 digits.\n";
}


/*
run:

6‑digit number: 604263
Digits: 0 7 8
The number does NOT contain all 3 digits.

*/

 



answered Jan 1 by avibootz
...