fork download
  1. import java.util.ArrayList;
  2. import java.util.Arrays;
  3. import java.util.List;
  4.  
  5.  
  6. public class Main {
  7.  
  8. public static void main(String[] args) throws Exception {
  9. final int input = 6;
  10.  
  11. final byte[] array = new byte[input];
  12.  
  13. final List<byte[]> arrays = recurse (array, input - 1);
  14.  
  15. for (final byte[] a : arrays) {
  16. print(a);
  17. }
  18. }
  19.  
  20. private static void print(final byte[] array) {
  21. final StringBuilder buf = new StringBuilder ("{");
  22.  
  23. for(final byte b : array) {
  24. if (buf.length() > 1) {
  25. buf.append (", ");
  26. }
  27. buf.append (b);
  28. }
  29.  
  30. buf.append ("}");
  31.  
  32. System.out.println(buf);
  33. }
  34.  
  35. private static List<byte[]> recurse(byte[] array, int input) {
  36. if (input > 0) {
  37. final List<byte[]> subArr1 = recurse (array, input - 1);
  38. array[array.length - input - 1] = 1;
  39. final List<byte[]> subArr2 = recurse (array, input - 1);
  40.  
  41. return sumList (subArr1, subArr2);
  42. }
  43. else {
  44. final byte[] arr1 = Arrays.copyOf(array, array.length);
  45. final byte[] arr2 = Arrays.copyOf(array, array.length);
  46. arr2[array.length - 1] = 1;
  47.  
  48. return Arrays.asList(arr1, arr2);
  49. }
  50. }
  51.  
  52. private static List<byte[]> sumList(List<byte[]> subArr1,
  53. List<byte[]> subArr2) {
  54. final List<byte[]> result = new ArrayList<byte[]> (subArr1.size() + subArr2.size());
  55.  
  56. result.addAll(subArr1);
  57. result.addAll(subArr2);
  58.  
  59. return result;
  60. }
  61. }
  62.  
Success #stdin #stdout 0.07s 215488KB
stdin
Standard input is empty
stdout
{0, 0, 0, 0, 0, 0}
{0, 0, 0, 0, 0, 1}
{0, 0, 0, 0, 1, 0}
{0, 0, 0, 0, 1, 1}
{0, 0, 0, 1, 1, 0}
{0, 0, 0, 1, 1, 1}
{0, 0, 0, 1, 1, 0}
{0, 0, 0, 1, 1, 1}
{0, 0, 1, 1, 1, 0}
{0, 0, 1, 1, 1, 1}
{0, 0, 1, 1, 1, 0}
{0, 0, 1, 1, 1, 1}
{0, 0, 1, 1, 1, 0}
{0, 0, 1, 1, 1, 1}
{0, 0, 1, 1, 1, 0}
{0, 0, 1, 1, 1, 1}
{0, 1, 1, 1, 1, 0}
{0, 1, 1, 1, 1, 1}
{0, 1, 1, 1, 1, 0}
{0, 1, 1, 1, 1, 1}
{0, 1, 1, 1, 1, 0}
{0, 1, 1, 1, 1, 1}
{0, 1, 1, 1, 1, 0}
{0, 1, 1, 1, 1, 1}
{0, 1, 1, 1, 1, 0}
{0, 1, 1, 1, 1, 1}
{0, 1, 1, 1, 1, 0}
{0, 1, 1, 1, 1, 1}
{0, 1, 1, 1, 1, 0}
{0, 1, 1, 1, 1, 1}
{0, 1, 1, 1, 1, 0}
{0, 1, 1, 1, 1, 1}
{1, 1, 1, 1, 1, 0}
{1, 1, 1, 1, 1, 1}
{1, 1, 1, 1, 1, 0}
{1, 1, 1, 1, 1, 1}
{1, 1, 1, 1, 1, 0}
{1, 1, 1, 1, 1, 1}
{1, 1, 1, 1, 1, 0}
{1, 1, 1, 1, 1, 1}
{1, 1, 1, 1, 1, 0}
{1, 1, 1, 1, 1, 1}
{1, 1, 1, 1, 1, 0}
{1, 1, 1, 1, 1, 1}
{1, 1, 1, 1, 1, 0}
{1, 1, 1, 1, 1, 1}
{1, 1, 1, 1, 1, 0}
{1, 1, 1, 1, 1, 1}
{1, 1, 1, 1, 1, 0}
{1, 1, 1, 1, 1, 1}
{1, 1, 1, 1, 1, 0}
{1, 1, 1, 1, 1, 1}
{1, 1, 1, 1, 1, 0}
{1, 1, 1, 1, 1, 1}
{1, 1, 1, 1, 1, 0}
{1, 1, 1, 1, 1, 1}
{1, 1, 1, 1, 1, 0}
{1, 1, 1, 1, 1, 1}
{1, 1, 1, 1, 1, 0}
{1, 1, 1, 1, 1, 1}
{1, 1, 1, 1, 1, 0}
{1, 1, 1, 1, 1, 1}
{1, 1, 1, 1, 1, 0}
{1, 1, 1, 1, 1, 1}