C#

(C#) 로또 번호 중복되지 않게 생성

코딩ABC 2023. 6. 24. 22:06
반응형

다음 코드는 C#으로 로또 번호 1 ~ 45 사이의 수를  중복되지 않도록 6개 생성하는 코드입니다.

using System;

namespace ConsoleApp_FirstApp
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] lotto = new int[6];
            int i, cnt = 0;
            Random rand = new Random();

            cnt = 0;
            while (cnt < 6)
            {
                int r = rand.Next(1, 46);   // 1 ~ 45의 난수 생성
                for (i = 0; i < cnt; i++) // 중복 검색: 이미 생성된 개수 만큼만 반복
                    if (lotto[i] == r) break;
                if (cnt == i) lotto[cnt++] = r;
            }
            Array.Sort(lotto);    // 크기 순으로 정렬

            for (i = 0; i < 6; i++)
                Console.Write("{0,2}  ", lotto[i]);
            Console.WriteLine();
        }
    }
}

생성된 로또복권 번호
생성된 로또복권 번호

 

 

위 코드를 10번 반복하도록 했습니다. 한꺼번에 10개의 로또 번호를 생성합니다.

using System;

namespace ConsoleApp_FirstApp
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] lotto = new int[6];
            int i, cnt = 0;
            Random rand = new Random();

            for (int k = 0; k < 10; k++)
            {
                cnt = 0;
                while (cnt < 6)
                {
                    int r = rand.Next(1, 46);
                    for (i = 0; i < cnt; i++) // 이미 생성된 개수 만큼 반복
                        if (lotto[i] == r) break;
                    if (cnt == i) lotto[cnt++] = r;
                }
                Array.Sort(lotto);

                for (i = 0; i < 6; i++)
                    Console.Write("{0,2}  ", lotto[i]);
                Console.WriteLine();
            }
        }
    }
}

생성된 로또복권 번호

만들어진 프로그램으로 생성된 번호입니다. 언젠가는 1등에 당첨된 번호가 나올 수 있기를 ...

 6  22  25  29  36  39
 3   8   9  20  24  29
15  16  26  28  32  33
 5   9  12  15  25  30
18  19  27  28  29  36
 4   8  19  33  40  45
11  12  21  28  35  38
13  20  33  34  36  44
 9  12  19  22  32  34
 4   6  10  14  20  24
21  22  27  35  36  37
 4   8   9  16  25  41
10  20  21  36  41  45
 7  17  20  22  23  43
15  24  31  36  40  44
 8  19  25  31  32  40
14  15  16  40  43  44
 9  10  18  38  40  45
 2   8  18  27  34  43
 7   8  18  22  38  45
 1   8  14  21  24  33
 2   4  17  26  29  41
 9  13  17  25  31  45
 9  11  14  19  22  32
 4   8  14  15  22  35
13  16  23  31  33  43
 1   8  10  22  25  26
 6   8  11  17  20  26
 9  10  17  19  39  44
11  18  23  32  38  39

 

 

 

반응형