ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 공뽑기
    코딩/C언어 2019. 9. 17. 15:40
    반응형
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    #include <stdio.h>
    #include <stdlib.h>
     
    void pick(char *items, int itemSize, int* bucket, int bucketSize, int k) { //중복 조합
     
        int i, lastIndex, smallest, item;
        if(k == 0 ) { 
            for (i = 0; i < bucketSize; i++) {
                printf("%c ", items[bucket[i]]); 
            }
            printf("\n");
            return;
        } 
        lastIndex = bucketSize - k - 1// 가장 최근에 뽑힌 수가 저장된 위치 index
     
        if (bucketSize == k ) 
            smallest = 0
        else 
            smallest = bucket[lastIndex] + 1// 조합
     
        for(item = smallest; item < itemSize; item++) {
            bucket[lastIndex + 1= item;
            pick(items, itemSize, bucket, bucketSize, k - 1);
        }
    }
    int main(void)
    {
        char items[7= {'A''B''C''D''E''F''G'}; // items는 오름차순으로 정렬되어있다고 가정
        int * bucket, num;
     
        scanf("%d"&num);
        bucket = (int *)malloc(sizeof(int* num);
     
        pick( items, sizeof(items)/sizeof(char), bucket, num, num );
    }
    cs

     

    결과:

    반응형

    '코딩 > C언어' 카테고리의 다른 글

    수식 나열  (0) 2019.09.17
    돈 계산  (0) 2019.09.17
    4진수  (0) 2019.09.17
    미로찾기  (0) 2019.09.17
    받아올림의 개수  (0) 2019.09.17
Designed by Tistory.