c++

명품 C++ 연습문제 3장 5번

케굴 2020. 4. 27. 21:53
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;

class EvenRandom {
public:
	EvenRandom() {
		srand((unsigned int)time(NULL));
	}
	int next() {
		int n = 1;
		while (n % 2 == 1)
			n = rand();
		return n;
	}
	int nextlnRange(int low, int high) {
		int n = 1;
		while (n % 2 == 1)
			n =(int)((float)rand() / (float)RAND_MAX *(float)(high+1) + low-1);
		return n;
	}
};
int main() {
	EvenRandom r;
	cout << " --0 에서 " << RAND_MAX << "까지의 랜덤 짝수 정수 10개-- " << endl;
	for (int i = 0; i < 10; i++) {
		int n = r.next();
		cout << n << ' ';
	}
	cout << endl << endl << " -- 2에서" << "10까지의 랜덤 짝수 정수 10개 --" << endl;
	for (int i = 0; i < 10; i++) {
		int n = r.nextlnRange(2, 10);
		cout << n << ' ';
	}
	cout << endl;
}