How to generate 20 digits random number in C++

2 Answers

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

std::string generate20DigitsRandomNumber() {
    std::random_device rd;
    std::mt19937 gen(rd());
    std::uniform_int_distribution<> dis(1, 9);
    std::string s;
 
    for (int i = 0; i < 20; i++) {
        s += std::to_string(dis(gen));
    }
 
    try {
        return s;
    } catch (const std::exception& e) {
        std::cout << "exception: " << e.what() << std::endl;
        return "-1";
    }
}
 
int main() {
    std::cout << generate20DigitsRandomNumber() << std::endl;
}


 
/*
run:
 
95551676643864674875

*/

 



answered Nov 9, 2024 by avibootz
edited Nov 9, 2024 by avibootz
0 votes
#include <iostream>
#include <string>
#include <random>
#include <ctime>

long double generate20DigitsRandomNumber() {
    std::srand(std::time(0)); 
    std::string s;
        
    for (int i = 0; i < 20; i++) {
        s += std::to_string(std::rand() % 9 + 1); 
    }
    
    std::cout << s << "\n";
    
    long double dec = -1;

    // Convert string to decimal
    try {
        dec = std::stold(s);
    } catch (const std::invalid_argument& e) {
        std::cout << "Error: " << e.what();
        return -1;
    } catch (const std::out_of_range& e) {
        std::cout << "Error: " << e.what();
        return -1;
    }
        
    return dec;
}

int main() {
    std::cout << generate20DigitsRandomNumber() << std::endl;
}



/*
run:

16769242487156957284
1.67692e+19

*/

 



answered Nov 9, 2024 by avibootz

Related questions

1 answer 89 views
2 answers 113 views
1 answer 92 views
1 answer 119 views
1 answer 118 views
1 answer 118 views
1 answer 113 views
...