문제
두 정수 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 |
댓글