8queens
- randy
- Geschlossen
-
-
Ich bin beeindruckt! Ist eigentlich gar nicht so schwer ;-).
Gruss
-
Naja, um ehrlich zu sein. Ich hab das nicht alleine geloest. kennt ihr den Begriff "signature programms"? Das sind kleine Programme in einer beliebigen Programmiersprache, die in maximal 4 zeilen a 79 Zeilen machbar sind. Ist ein cooler Sport unter Programmierern möglichst aufwaendige Probleme in möglichst effizient und nicht wartbar/lesbaren Code zu hacken. Das 8 Queens Problem ist eins davon.
Codev,i,j,k,l,s,a[99];main(){for(scanf("%d",&s);*a-s;v=a[j*=v]-a[i],k=i<s,j+=(v=j<s\ &&(!k&&!!printf(2+"\n\n%c"-(!l<<!j)," #Q"[l^v?(l^j)&1:2])&&++l||a[i]<s&&v&&v-i+\ j&&v+i-j))&&!(l%=s),v||(i==j?a[i+=k]=0:++a[i])>=s*k&&++a[--i]) ; }
Speichert das mal als baruch.c, dann
und schwupps habt ihr
als nur eine von insgesamt 92 möglichen Lösungen. Wen man alle Duplikate (drehen, spiegeln) entfernt kommt man immerhin noch auf 12 verschiedene Lösungen.
Original Sourcen gibts hier
Have fun.
Jetzt mitmachen!
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!