基本的に、このプログラムは1から10までの10進数、つまり2の累乗のインデックスをとります。そして、2^nの組み合わせの配列に変わります。例:私の数が1の場合、2つの配列[0]と[1]を持ち、小数点が2の場合は4つの組み合わせ[0 0]を持ちます。 [0 1]; [1 0]; [1 1]。等々。下記のプログラムを最適化する良い方法はありますか?
#include <stdio.h>
int main() {
int n, q = 1, i, f, d, p, vet[10];
scanf ("%d", &n);
for (i = 0; i < n; i++){
q *= 2;
}
n--;
for (i = 0; i < q; i++){
f = i;
for (p = 0; p < 10; p++){ //setting array to 0
vet[p] = 0;
}
while (f > 0){
p = 1;
d = 0;
while (f >= 2*p){
p *= 2;
d++;
}
vet[d] = 1;
f -= p;
}
printf ("f: %d bin:", i);
for (p = 0; p < 10; p++)
printf ("%d", vet[9-p]);
printf ("\n");
}
return 0;
}
[codereview.se]にこれを行ってください。 – Filburt
コードレビューSEの方が適しているため、この質問を議論の対象外としています。 –
コードレビューに投稿します。ここに新しい、そのようなWebページがあったのか分からなかった。 Tnks –