基本上這個程序需要從1到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
我投票結束這個問題作爲離題,因爲這更適合Code Review SE! –
我會在Code Review上發佈它。新來這裏,不知道有這樣一個網頁。 Tnks –