002
12.01.2004, 15:23 Uhr
virtual
Sexiest Bit alive (Operator)
|
Ich bin zwar kein golferm aber bilde mir ein, eine naive Lösung gefunden zu haben. Ich verlange also einen virtuellen schulterkolpfer....
C++: |
#include <stdio.h>
void next(int* a, int n, int k) { if (k==0) { /* Ausgabe */ for(;k<n; ++k) printf("%d%c", a[k], n-1==k? '\n':','); }else { /* Nächste Permutation */ int i,j,t; for(i=0,j=k-1; i<k; ++i) { t = a[i]; a[i] = a[j]; a[j] = t; next(a, n, j); a[j] = a[i]; a[i] = t; } } }
void komb(int*a, int n) { next(a, n, n); }
int main() { int a[] = {1, 2, 3, 4}; komb(a, sizeof(a)/sizeof(*a)); }
|
-- Gruß, virtual Quote of the Month Ich eß' nur was ein Gesicht hat (Creme 21) |