기금넷 공식사이트 - 복권 조회 - 다중 복권 C++ 알고리즘

다중 복권 C++ 알고리즘

# include & ltcstdlib & gt

# 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 을 반환합니다

}