ITGenerations
[c++] p145. n4. 문제 3번을 참고하여 짝수 정수만 랜덤하게 발생 blah blah 본문
[c++] p145. n4. 문제 3번을 참고하여 짝수 정수만 랜덤하게 발생 blah blah
ITGenerations 2017. 11. 23. 22:31p145. n4. 문제 3번을 참고하여 짝수 정수만 랜덤하게 발생시키는 EvenRandom 클래스를 작성하고
EvenRandom 클래스를 이용하여 10개의 짝수를 랜덤하게 출력하는 프로그램을 완성하라.
0도 짝수로 처리한다.
--------------------------------------------------------------------------------------------------------------------------------
#include <iostream>
#include <ctime>
#include <random>
#define RAND_MAX 32767
using namespace std;
class EvenRandom
{
public:
int n;
EvenRandom()
{
srand((unsigned)time(NULL));
}
int next();
int nextInRange(int low, int high);
};
// 짝수 = even numbers
// 홀수 = odd numbers
// 0 to MAXRAND get even-numbers
int EvenRandom::next()
{
int i;
do
{
i = rand();
} while (i%2==1);
return i;
}
// 2 to 10 get even-numbers
int EvenRandom::nextInRange(int a, int b)
{
int range;
do
{
range = a+(rand()%(b-a+1));
} while (range%==1);
return range;
}
int main()
{
EvenRandom r;
cout << "-- 0에서 " << RAND_MAX << " 까지의 랜덤정수 10개 --" << endl;
for (int i = 0; i < 10; i++)
{
int n = r.next();
cout << n << ' '; // Tab으로 간격 조절
}
cout << endl;
cout << endl << endl << "-- 2에서 " << "10 까지의 랜덤 정수 10개 --" << endl;
for (int i = 0; i < 10; i++)
{
int n = r.nextInRange(2, 10);
cout << n << ' '; // Tab으로 간격 조절
}
cout << endl;
}
'프로그래밍 > c++ 명품프로그래밍 ' 카테고리의 다른 글
[c++] 인라인 함수란? (0) | 2017.11.25 |
---|---|
[c++] p145. n5 짝수 홀수를 선택할 수 있도록 생성자를 가진 SelectableRandom 클래스를 (0) | 2017.11.25 |
[c++] p144. n3. 랜덤 수를 발생 시키는 Random 클래스를 만들자 (0) | 2017.11.23 |
[c++] p144. n2. 날짜를 다루는 Date 클래스를 작성하고자 한다. ~ (0) | 2017.11.23 |
[c++] p143/1. main()의 실행 결과가 다음과 같도록 Tower 클래스를 작성하라 (0) | 2017.11.22 |