• ベストアンサー

0,1の組み合わせを表示するプログラム

Javaで以下のようなプログラムを作成したいです(できれば配列を使わずに)。 どうかご教授願いますm(_ _)m 何かしらの文字列を入力(Exit以外なら何でもいい) ↓ 0 1 と表示 ↓ 何かしらの文字列を入力 ↓ 00 01 10 11 と表示 ↓ 何かしらの文字列を入力 ↓ 000 001 010 011 100 101 110 111 と表示 ↓ (以下、Exitが入力されるまでループ・・・)

質問者が選んだベストアンサー

  • ベストアンサー
  • Ogre7077
  • ベストアンサー率65% (170/258)
回答No.1

配列が駄目とのことなので、Java8 のストリームを使います 整数 num を bits 桁の2進数で表示する関数を作る 例) String convertBin(int num, int bits){ return IntStream.range(0, bits).map(x -> 1 << (bits-x-1)).mapToObj(x -> (num & x) != 0 ? "1": "0").collect(Collectors.joining()); } 0 から (2^n)-1 の整数を2進数表示する関数を作る 例) void displayBinString(int n){ int max = 1 << n; IntStream.range(0,max).mapToObj(x->convertBin(x,n)).forEach(System.out::println); } 1 から N の整数で displayBinString を呼び出す 例) for (int bits = 1; bits <= N; bits++) { _ displayBinString(bits); _ if (何かしらの文字列を入力されるまで待つ() == Exitの条件) break; }

関連するQ&A