본문 바로가기
알고리즘

C++ Tobin

by Chars4785 2019. 2. 18.

문제


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

 

입력


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


예제 입력

4 2

예제 출력

1100
1010
1001
0110
0101
0011

예제 입력

2 1

예제 출력

10
01


#include <iostream>

using namespace std;


char num[5];

int n,k,arry[100];

void dfs(int x,int y)
{
int i;

if(x>=n){
if(y==k){
for(i=0; i<n; i++)cout<<arry[i];
cout<<endl;
}
return;
}

if(y<k){
arry[x]=1;
dfs(x+1,y+1);
}
arry[x]=0;
dfs(x+1,y);

}

int main(){

cin>>n >> k;

dfs(0,0);

return 0;
}


'알고리즘' 카테고리의 다른 글

Java 탑  (0) 2019.04.01
C++ division 재귀함수  (0) 2019.02.27
C++ 큰 수 더하기,빼기, 곱하기  (0) 2019.02.08
C++ 소수 ( 쉽게 구하는 방법 )  (0) 2019.02.05
C++ 이진탐색 응용  (0) 2019.01.26

댓글