Zusammensetzung einer Zahl

Status
Nicht offen für weitere Antworten.

salexal

Mitglied
Hallo!

Möchte ein Programm schreiben das einen Geldbetrag einliest und dann vier Münzensorten. Es sollen dann alle möglichen Zusammensetzungen des Geldbetrages aus Münzen der vier Münzensorten ausgeben. z.B.: Geldbetrag 20;
Münzensorten: 1, 2, 5, 10,
Beispiele für Zusammensetzung: 20 x 1 oder 4 x 5 oder 5 x 2 + 1 x 10;

Hat jemand eine Idee wie man sich das in Java überlegen kann?

Danke für die Hilfe
lg alex
 

salexal

Mitglied
Ja hab mir da mal was überlegt:

ich schaue bei jeder Kombination ob sie gleich 20 ist:
0x1 + 0x2 + 0x5 + 0x10 =? 20
wenn zwanzig dann ausgeben sonst verwerfen
0x1 + 0x2 + 0x5 + 1x10 =? 20
0x1 + 0x2 + 0x5 + 2x10 =? 20

0x1 + 0x2 + 1x5 + 0x10 =? 20
0x1 + 0x2 + 2x5 + 0x10 =? 20
....

weiß aber nicht wie ich das programmiern könnte
bitte um Hilfe

lg alex
 
S

SlaterB

Gast
gut, das ist genau was ich auch posten wollte bevor dann Michael... etwas pädagogischer fragte:

----
mal eine eher wenig originelle Idee (auf bessere bitte selber kommen)

seit x der gesuchte Betrag,

vier verschachtelte Schleifen
Java:
for i..
  for j..
    for k..
      for l..
die jeweils bis x laufen

ganz innen drinnen hat mal also immer 4 Zählvariablen zur Verfügung, die man als Anzahl der vier Münzen interpretiert,
nun ausrechnen, ob diese Kombination zusammen den gesuchten Betrag x ergibt,
wenn ja schön ausgeben, sonst ignorieren

falls der Wert der vier Münzen erst eingegeben wird, geht das auch noch,
falls die Anzahl der Münzen variabel ist, wirds so recht schwer ;)
----


am besten erstmal mit einer Münze üben, auch da mit Schleife, sollte nur ein Ergebnis kommen,
bei zwei Münzen dann richtig anfangen zu rechnen
 

Jango

Gesperrter Benutzer
@ salexal:

Du möchtest sicher die ufgabe gelöst bekommen, den komplette Quellcode.
Am Wochenende hab ich zeit dafür, wenn du es wünscht auch gern mit Dokumentationen, weil du es ja sonst nicht erklären kannst.
Also wenn dir das bis nächste Woche reicht.
 

salexal

Mitglied
@ KatataFisch:

Danke das is sehr nett von dir!!!! Leider muss ich die aufgabe schon am donnerstag abgeben aber danke für dein angebot!!!!

Lg alex
 

salexal

Mitglied
Hat vielleicht jemand eine genauere Lösung bitte? Bin voll planlos wie ich meine idee umsetzen kann...

danke

lg alex
 

Michael...

Top Contributor
Wenn die vier Münzsorten fest vorgegeben sind, kann man das wie SlaterB schon sagte mit vier verschachtelten Schleifen machen. In etwa so:
Java:
int betrag = 20;

for (int zehner=0; zehner<=betrag/10; zehner++) {
    for (int fuenfer=0; fuenfer<=betrag/5; fuenfer++) {
        for (int zweier=0; zweier<=betrag/2; zweier++) {
            for (int einer=0; einer<=betrag; einer++) {
                //Hier das Produkt aus zehner, fuenfer... berechnen und mit betrag vergleichen
                //und ggf eine Ausgabe machen
            }
        }
    }
}

Ist allerdings eine Holzhammermethode aber für Anfänger wie Dich vermutlich nicht viel besser lösbar. Besser wäre hier ein rekursiver Ansatz mit ein bisschen mehr Intelligenz
 
S

SlaterB

Gast
int x = 2; // 2 10er
int y = 3; // 3 5er

int summe = x*10+y*5;
? ;)
 
S

SlaterB

Gast
int summe = i*10+j*5;
innerhalb der i + j Schleife wäre verständlicher?

beim Beispiel von Michael... heißen die Variablen noch anders, aber da ist wirklich nix zu erkennen?
 
S

SlaterB

Gast
mir schien, du hättest schon verstanden, dass es um Schleifen ging und es dann DARIN spannend wird?
Java:
int betrag = 20;

for (int zehner=0; zehner<=betrag/10; zehner++) {
    for (int fuenfer=0; fuenfer<=betrag/5; fuenfer++) {
        for (int zweier=0; zweier<=betrag/2; zweier++) {
            for (int einer=0; einer<=betrag; einer++) {
                //Hier das Produkt aus zehner, fuenfer... berechnen und mit betrag vergleichen
                //und ggf eine Ausgabe machen
            }
        }
    }
}

Danke, aber wie berechne ich das Produkt?

lg alex
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben