두 정수 n, k를 입력받아 k개의 1을 가진 n자리 이진 패턴을 출력하는 프로그램을 작성하세요.
입력
두 정수 n, k가 입력으로 주어진다. ( 0 < n <= 30, 0 <= k < 8 , n >= k )
출력
결과를 내림차순으로 출력한다.
예제 입력
1
예제 출력
10
01
예제 입력
0
예제 출력
00
예제 입력
4 2
예제 출력
1100
1010
1001
0110
0101
0011
#include <stdio.h>
int n , k;
int arr[31]={0};
void result(int id , int num_1){
if(id == n){
if(num_1 == k){
for(int i =0 ; i< n ; i++ ) printf("%d" , arr[i]);
printf("\n");
}
return;
}
if(num_1 < k){
arr[id] = 1;
result(id+1 , num_1+1);
}
arr[id] = 0;
result(id+1 , num_1);
}
int main() {
scanf("%d %d" , &n , &k);
result(0 ,0);
//Please Enter Your Code Here
return 0;
}
#include <stdio.h>
int n , k;
int arr[30]={0,};
void getresult(int id , int num_1){
if(id >= n){
if(num_1 == k){
for(int i = 0 ; i < id ; i++) printf("%d" , arr[i]);
printf("\n");
}
return;
}
if(num_1 < k){
arr[id] = 1;
getresult(id+1,num_1+1);
}
arr[id] = 0;
getresult(id+1 , num_1);
}
int main() {
scanf("%d %d" , &n , &k);
getresult(0,0);
return 0;
}
uwaterloo junior contest