ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 명품 C++ 3장 6번
    C++ 2018. 10. 28. 15:21

    6. 문제 5번을 참고하여 짝수 정수만 랜덤하게 발생시키는 EvenRandom 클래스를 작성하고 EvenRandom 클래스를 이용하여 10개의 짝수를 랜덤하게 출력하는 프로그램을 완성하라. 0도 짝수로 처리한다.


    소스코드


    #include <iostream>
    #include <cstdlib>
    #include <ctime>
    using namespace std;
    class EvenRandom {
    public:
        EvenRandom();
        int next();
        int nextInRange(int x, int y);
    };
    EvenRandom::EvenRandom() {
        srand((unsigned)time(0));
    }
    int EvenRandom::next() {
        int n = rand();
        if (n % 2 == 0) return n;
        else return n - 1;
    }
    int EvenRandom::nextInRange(int x,int y) {
        int n= rand() % (y - x+1) + x;
        if (n % 2 == 0) return n;
        else return n - 1;
    }
    int main() {
        EvenRandom r;
        cout << "-- 0에서 " << RAND_MAX << "까지의 랜덤 정수 10 개--" << endl;
        for (int i = 0; i < 10; ++i) {
            int n = r.next(); // 0에서 RAND_MAX(32767) 사이의 랜덤한 정수
            cout << n << ' ';
        }
        cout << endl << endl << "-- 2에서 " << "10 까지의 랜덤 정수 10 개 --" << endl;
        for (int i = 0; i < 10; ++i) {
            int n = r.nextInRange(2, 10); //2에서 10 사이의 랜덤한 저수
            cout << n << ' ';
        }
        cout << endl;
    }


    실행결과


    2로 나눈 나머지로 짝수를 판별하여 맞다면 그대로 리턴하고, 홀수라면 1을 빼서 짝수로 맞췄습니다.


    'C++' 카테고리의 다른 글

    명품 C++ 3장 8번  (0) 2018.10.28
    명품 C++ 3장 7번  (0) 2018.10.28
    명품 C++ 3장 5번  (0) 2018.10.28
    명품 C++ 3장 4번  (0) 2018.10.28
    명품 C++ 3장 3번  (0) 2018.10.28

    댓글

© 2018 TISTORY. All rights reserved.