Einzelnen Beitrag anzeigen
Alt 11.11.2005, 11:39   #2
jak
Inventar
 
Registriert seit: 13.06.2001
Beiträge: 1.830


Standard

Die quick&dirty Version ist es einfach Schleifen zu schachteln zu schauen ob die Summe <Gesamtsumme ist, zu überprüfen ob diese Kombi schon war und die dann zu speichern. Das wird halt ziemlich langsam sein.

Ein bischen Flotter wird's wenn du die Schleifen entweder bis gesamtsumme-teilsumme oder bis 20 laufen lässt, je nachdem welches kleiner ist. Sinnvollerweise sollte die Schleifen auch noch von oben nach unten laufen, dann sollte die selbe Kombi nicht zweimal vorkommen (bin mir da aber nicht ganz sicher).
Also etwas in der Art
Code:
int teil, gesamt=0, max=20, ziel=125;
for(int i1=max; i1>0; i1--){
  teil = i1;
  int z2 = ((ziel-teil)>(max-1) ? (max-1) : (ziel-teil));
  for(int i2=z2; i2>0; i2--){
   teil=i1+i2;
   etc.
  }
}
Mit ein bischen Nachdenken kannst du das ganze noch rekursiv machen.

jak
____________________________________
Join the DNRC | Godwin\'s Law (thx@stona)
Documentation is like sex: If it\'s good, it\'s very, very good. If it\'s bad, it\'s better than nothing.
\"In theory, theory and practice are the same. In practice, they are not\" (Lawrence Berra)
jak ist offline   Mit Zitat antworten