F
So, mein Ergebniss liegt vor.
Ich habe nicht 50, sondern 25 genommen und die Zahlen 11, 7, 5 und 3, um die Kombinationen zu bilden.
Erster Gedanke war, wie viele Möglichkeiten es gibt und da komme ich auf 9*6*4*3 = 648 Möglichkeiten. Meine Idee ist, dass die Gleichung 2*x+3*y+5*z+8*v=25 erfüllt sein muss. Also muss ich alle Möglichkeiten der Gleichung checken und, wenn sie erfüllt ist ausgeben.
Eine Frage ist jetzt, gibt es einen Trick, wie man for-Schleifen leicht in eine Rekursion umwandeln kann und ist mein Vorgehen das erschöpfende durchsuchen? Da ich alle Kombinationen durchgehe müsste dem so sein.
Unten ist mein Quelltext.
#include <stdio.h>
int main( void){
int n, i, j, k; /* Hilfsvariablen */
//int zaehler=0;
for(n=0; n<=25; n+=11) /* Schleife fuer 11 */
{
for(i=0; i<=25; i+=7) /* Schleife fuer 7 */
{
for(k=0; k<=25; k+=5) /* Schleife fuer 5 */
{
for(j=0; j<=25; j+=3) /* Schleife fuer 3 */
{
zaehler++;
if((n + i + k + j)==25)
printf("*** Loesung: %d*11 + %d*7 + %d*5 + %d*3 ***\n", n/11, i/7, k/5, j/3);
//else
//printf("Keine Loesunge: %d*11 + %d*7 + %d*5 + %d*3// Zaehler: %d\n", n/11, i/7, k/5, j/3, zaehler);
}
}
}
}
return 0;
}