n個のビット列の全パターンを生成するプログラム

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
がんばるjd

n個のビット列の全パターンを生成するプログラム

#1

投稿記事 by がんばるjd » 3年前

c言語初心者です。
n個のビット列の全パターンを生成するプログラムを
作りたいです。

例えばn=いくつ?と表示し、2と入力したら00 01 10 11
と表示する。表示する順番は順不同で問題ないです。
再帰的アルゴリズムを用いて作成しているのですが、
上手くいきません。

アバター
みけCAT
記事: 6734
登録日時: 13年前
住所: 千葉県
連絡を取る:

Re: n個のビット列の全パターンを生成するプログラム

#2

投稿記事 by みけCAT » 3年前

フォーラムルールより
質問は具体的にする
詳しくは「回答者が困る質問例」をご覧下さい

「うまくいきません」という質問は大抵回答に困ります。

自分は今何がしたくて
どう取り組んで(作ったプログラムはどれで
どのようなエラーやトラブルで困っていて
自分は何が解らないのか、知りたいのか
今のCの知識はどの程度なのか

この5点をしっかりと明記して下さい。

環境に依存する場合やライブラリを使っているときは
使っているOS名・コンパイラ名・ライブラリ名も明記しましょう。

コンパイルエラーの質問時は必ず最低限のエラーメッセージも書きましょう。
ただし、短いビット列の生成に再帰は必要ないでしょう。
コンピュータの内部では通常数値はビット列で表されるので、それをそのまま利用して出力できます。

コード:

#include <stdio.h>

int main(void) {
	int n;
	int i, j;
	puts("n=いくつ?");
	if (scanf("%d", &n) != 1) return 1;
	for (i = 0; i < (1 << n); i++) {
		for(j = n - 1; j >= 0; j--) {
			printf("%d",(i >> j) & 1);
		}
		putchar(' ');
	}
	putchar('\n');
	return 0;
}
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

返信

“C言語何でも質問掲示板” へ戻る