쿠쿠의기록

8. tobin 본문

알고리즘/L7~8 재귀함수

8. tobin

쿠쿠트레인 2020. 9. 8. 10:53

문제


두 정수 n, k를 입력받아 k개의 1을 가진 n자리 이진 패턴을 출력하는 프로그램을 작성하세요.

 

입력


두 정수 n, k가 입력으로 주어진다. ( 0 < n <= 30, 0 <= k < 8 , n >= k )

 

출력


결과를 내림차순으로 출력한다.

 

예제 입력

2 1

예제 출력

10

01

 

예제 입력

2 0

예제 출력

00

 

예제 입력

4 2

예제 출력

1100

1010

1001

0110

0101

0011

 

문제풀이

 

#include <stdio.h>

int d[100];
int num;
int length;

void printALL(int len){
  if(len!=num){
    return;
  }
  for(int i=0;i<length;i++){
    printf("%d",d[i]);
  }
  printf("\n");
}
void binaryFunc(int inx1,int len){
  if(len>num){
    return;
  }
  if(inx1==length){
    printALL(len);
    return;
  }
  
  d[inx1] = 1;
  binaryFunc(inx1+1,len+1);
  d[inx1] = 0;
  binaryFunc(inx1+1,len);
}
int main() {

  scanf("%d %d",&length,&num);
  
  binaryFunc(0,0);
  
  return 0;
}

'알고리즘 > L7~8 재귀함수' 카테고리의 다른 글

8. dessert  (0) 2020.09.08
8. division  (0) 2020.09.08
8. 순열구하기  (0) 2020.09.07
7. mountain  (0) 2020.08.24
7. binary  (0) 2020.08.24