Skip to content

Commit cd1e546

Browse files
Create PrintBinaryStringsOfNumDigitsLength.java
1 parent 1200424 commit cd1e546

File tree

1 file changed

+38
-0
lines changed

1 file changed

+38
-0
lines changed
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
public class Demo{
2+
static void printBinaryStringsOfNumDigitsLengthIteratively(int numDigits){
3+
int n = 1<<numDigits;
4+
for (int i=0; i<n; i++){
5+
for (int j=numDigits; j>0; j--){
6+
if ((i>>j-1 & 1) == 1){
7+
System.out.print("1");
8+
} else {
9+
System.out.print("0");
10+
}
11+
}
12+
System.out.print(" ");
13+
}
14+
}
15+
static void printTheArray(int[] arr, int numDigits){
16+
for (int i=0; i<numDigits; i++){
17+
System.out.print(arr[i]);
18+
}
19+
System.out.print(" ");
20+
}
21+
static void printBinaryStringsOfNumDigitsLengthRecursively(int numDigits, int[] arr, int i){
22+
if (numDigits == i){
23+
printTheArray(arr, numDigits);
24+
return;
25+
}
26+
arr[i] = 0;
27+
printBinaryStringsOfNumDigitsLengthRecursively(numDigits, arr, i+1);
28+
arr[i] = 1;
29+
printBinaryStringsOfNumDigitsLengthRecursively(numDigits, arr, i+1);
30+
}
31+
public static void main(String[] args) {
32+
int numDigits = 3;
33+
int[] arr = new int[numDigits];
34+
printBinaryStringsOfNumDigitsLengthIteratively(numDigits); //000 001 010 011 100 101 110 111
35+
System.out.println();
36+
printBinaryStringsOfNumDigitsLengthRecursively(numDigits, arr, 0); //000 001 010 011 100 101 110 111
37+
}
38+
}

0 commit comments

Comments
 (0)