기금넷 공식사이트 - 복권 조회 - 다중 복권 C++ 알고리즘
다중 복권 C++ 알고리즘
# include & ltctime & gt
# include & ltvector & gt
# include & ltcmath & gt
# include & ltcstring & gt
# include & ltiostream & gt
네임스페이스 STD 사용
복권//복권 카테고리
{
공용:
Lottery(int, bool, char *);
복권 (const 복권 및 amp); //생성자 복사
Intget _ num () {return num; }
개인:
Int num// 숫자
부울운 //이기든 잃든
Char 상 [20]; //경품은 무엇입니까?
}
복권:: 복권 (int n, bool l, char *p)
: 숫자 (n), 행운 (l)
{
Strcpy(prize, p);
}
복권:: 복권 (상수 복권 및 ampl)
{
Num = L.num
Luck = L.luck
Strcpy(prize, l.prize);
}
벡터< 복권 & gta;; //이미 뽑은 복권의 집합
복권 함수1(int); //한 수치로 복권 당첨 여부를 판단하다.
Lottery Create() // 복권 한 장을 무작위로 뽑다.
{
Inta = rand ()% 6; //이 변수는 숫자의 첫 번째 자리를 나타냅니다.
If (a == 5) // 1 위가 5 이면 마지막 7 자리는 0!
반환 함수1(50000000);
기타
{
Intnum = 0; //복권 번호, int 변수의 범위를 벗어나지 않습니다. 배열로 표현할 필요가 전혀 없습니다!
For(int I = 7;; 나<= 0; 나-)
Num+= rand ()%10 * pow (10.0, 8-I);
리턴 함수1(num);
}
}
복권 함수 1 (정수)
{
만약 (num 수가 일정한 조건을 충족한다면)//어떤 수 장려인지 모르면 직접 쓰세요!
{
Lotteritemp (num, true, "prize1");
반환 온도
}
기타
{
Lotteritemp (num, false, "참여해 주셔서 감사합니다!" " );
반환 온도
}
}
Bool function2(int num) // 새 숫자를 추출할지 여부를 결정합니다.
{
For(size _ t I = 0;; 나 & lta.size (); I++)
만약 (A[i]. Get _ num () = = = num)
True 를 반환합니다
False 를 반환합니다
}
Int main ()
{
Srand (부호 없음 (시간 (0));
For (int I =1; 나<= 50; I++)
{
복권 온도 (Create()););
만약 (! Function 2(temp. get _ num())// 숫자가 추출되지 않은 경우 컬렉션에 추가합니다.
A. push _ back (temp);
기타
I-; //번호가 이미 추출된 경우 다시 추출합니다.
}
0 을 반환합니다
}