Erste Schritte Rechnen mit Schleifen? Denkanstoß gesucht

woopwoop

Mitglied
Hallo zusammen,

ich habe in der Schule Java und bin momentan dabei mich einzuarbeiten.
Ich stehe vor einen Problem an dem ich schon ne Weile arbeite und bräuchte dazu ein paar Denkanstöße.

Ich habe 100€. Dafür soll ich Kombinationen ausgeben mit welchen Scheinen ich das abbilden kann. (Hier in dem Fall 20er, 10er, 5er).
Also z.B.
Lösung 1: 5x20er
Lösung 2: 5x20er, 2x10er
usw.

Ich habe überlegt dass ich dazu vermutlich schleifen benötige, hab aber überhaupt keinen Ansatz wie ich damit alle Varianten abdecken soll.

Hat jemand einen Tipp für mich?

Gruß
 

Meniskusschaden

Top Contributor
@Meniskusschaden Dynamische Programmierung möglich?
Hm, bin nicht sicher, ob es geht bzw. etwas bringt. Es wird ja auch nicht die optimale Lösung gesucht, sondern alle Lösungen. Man könnte es natürlich in ein Optimierungsproblem abwandeln, etwa den Betrag in möglichst wenig Scheine aufzuteilen. Aber da scheint mir - zumindest bei unseren Scheinsorten - auch ein einfacher Greedy-Algorithmus zu genügen.
 
X

Xyz1

Gast
Doch ich habs. :rolleyes:

Ein eindimensionales dynamisches Optimierungsprogrammierungsproblem - auf der man sich vor und zurück bewegt. :rolleyes:

Unterscheidet sich aber natürlich nicht vom gefräßigem Ansatz in der Laufzeit....

Ich werde das gleich ma implementieren. :)
 

mihe7

Top Contributor
Vielleicht weiß @mihe7 ein klein wenig dazu!
Wie komm ich zu der Ehre?!?

Ich sehe es wie @Meniskusschaden. Um die Minimalzahl an Scheinen zu ermitteln, dürfte Greedy reichen, weil jeder größere Schein mindestens zwei kleinere Scheine ersetzt.

Java:
public class Scheine {
    public static final int[] WERTE = {500,200,100,50,20,10,5};

    public int[] scheine(int wert) {
        int[] result = new int[WERTE.length];
        for (int i = 0; i < WERTE.length; i++) {
            result[i] = wert / WERTE[i];
            wert -= result[i] * WERTE[i];
            // oder wert %= WERTE[i];
        }
        return result;
    }
}
 
X

Xyz1

Gast
@mihe7 und @Meniskusschaden
Da wir schon bei Lösungen sind :rolleyes: Damit ginge es - weiß nicht genau wieso und lässt sich natürlich noch vereinfachen :rolleyes:
Java:
public static void main(String[] args) {
    int[] werte = {50, 20, 10};
    int[] scheine = new int[werte.length];
    int wert = 0;
    for (int i = 0; i >= 0;) {
        //System.out.println(i);
        if (i == werte.length) {
            if (wert == 100) {
                System.out.println(Arrays.toString(scheine));
            }
            i--;
            scheine[i] = scheine[i] + 1;
            wert = wert + werte[i];
        } else {
            if (wert > 100) {
                wert = wert - werte[i] * scheine[i];
                scheine[i] = 0;
                i--;
                if (i >= 0) {
                    scheine[i] = scheine[i] + 1;
                    wert = wert + werte[i];
                }
            } else {
                i++;
            }
        }
    }
}

Und es gibt aus
Code:
0, 0, 10
0, 1, 8
0, 2, 6
0, 3, 4
0, 4, 2
0, 5, 0
1, 0, 5
1, 1, 3
1, 2, 1
2, 0, 0
 

mihe7

Top Contributor
@DerWissende letztlich definieren wir beide ein Stellenwertsystem, nennen wir es mal monetär. Während bei mir der Wert im Prinzip einfach von dezimal zu monetär umgerechnet wird, zählst Du im monetären System durch und gibst die monetäre Zahl aus, sobald sie dem dezimalen Wert entspricht. Dabei wird aber nichts optimiert.
 
X

Xyz1

Gast
@mihe7 Eigentlich hätte ich das anders gemacht, aber wir sind ja hier im Anfänger-Thema :rolleyes: .... er soll auch etwas nachdenken IMO
Ob und wenn ja wie optimiert werden kann - das erscheint mir sehr nebulös ;)o_O
 

woopwoop

Mitglied
Wow ihr seid ja richtig aktiv. Ich werde erstmal sehn was ich mit den Infos anfangen kann. Vielen Dank schon mal :)

Edit: hab grade gesehn dass ihr Arrays benutzt habt, das sollen wir explizit nicht machen da wir das noch nicht "können" :/
 
Zuletzt bearbeitet:

woopwoop

Mitglied
Aber wenn ich mir eine Funktion schreibe die mir die Berechnung machen soll, kann ich ja nur einen Wert (zB für die 20er ein int 20) von dieser zurück geben lassen? Muss ich dann immer eine eigene machen?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
C Rechnen mit Brüchen, ist meine Lösung soweit richtig? Java Basics - Anfänger-Themen 4
C Kann mir jemand sagen warum ich nicht mal rechnen kann ? Java Basics - Anfänger-Themen 32
Liroyd Methode mit Objektvariabel rechnen? Java Basics - Anfänger-Themen 6
I Output BigDecimal anstatt double / Problem beim Rechnen Java Basics - Anfänger-Themen 16
Zeppi Geteilt rechnen Java Basics - Anfänger-Themen 2
D Mit Objekten rechnen, Textfield, JavaFX, Noob Java Basics - Anfänger-Themen 8
L Mit Zahlen im String rechnen Java Basics - Anfänger-Themen 19
L Datentypen Rechnen und abrunden mit double Java Basics - Anfänger-Themen 7
S Hamster Simulator rechnen lernen Parameter int Java Basics - Anfänger-Themen 6
D Operatoren Mit Objekten rechnen Java Basics - Anfänger-Themen 7
P Rechnen mit Brüchen - objektorientierte Programmierung Java Basics - Anfänger-Themen 18
S Rechnen mit MaxValue Java Basics - Anfänger-Themen 7
L Rechnen mit Objekten Java Basics - Anfänger-Themen 3
W Seltames Problem bei Rechnen mit BigIntegers Java Basics - Anfänger-Themen 2
A Rechnen mit Text und Zahl Java Basics - Anfänger-Themen 4
S Jede Ziffer einer Zahl auslesen, damit rechnen und beim Ergebnis wiederholen ? Java Basics - Anfänger-Themen 20
S Dezimalzahlen rechnen Java Basics - Anfänger-Themen 3
kilopack15 Rechnen mit großen Zahlen Java Basics - Anfänger-Themen 6
D Rechnen mit numerischen Datentyp Frage Java Basics - Anfänger-Themen 16
E Best Practice Exaktes Rechnen mit (Pseudo-)Rationalen/Realen Zahlen. Operations Zuweisung für (eigene) Klassen Java Basics - Anfänger-Themen 3
1 Mit Java Rechnen Java Basics - Anfänger-Themen 10
T Einstieg in "grafische Progammierung" + Rechnen in Flussdiagramm Java Basics - Anfänger-Themen 2
W Variablen float rundet beim Bruch rechnen Java Basics - Anfänger-Themen 3
N Oracle SQL mit Zwischenergebnis rechnen Java Basics - Anfänger-Themen 2
Y Variable Menge von Objekten erzeugen und mit ihren Attributen rechnen Java Basics - Anfänger-Themen 7
S Double mithilfe eines Scanners so einlesen, dass ich damit rechnen kann Java Basics - Anfänger-Themen 4
J Char-Rechnen Java Basics - Anfänger-Themen 8
A Rechnen mit Set/Get? Java Basics - Anfänger-Themen 2
Z Erste Schritte Instanzmethoden Rechnen (Bruch) Java Basics - Anfänger-Themen 18
M Mit Werten aus Arrays in anderen Methoden rechnen? Java Basics - Anfänger-Themen 3
J Mit Datum rechnen Java Basics - Anfänger-Themen 11
F Erste Schritte [GUI] Dual in Dezimal rechnen Java Basics - Anfänger-Themen 5
D Erste Schritte Rechnen mit Brüchen Java Basics - Anfänger-Themen 13
D rechnen mit Stunden und Minuten Java Basics - Anfänger-Themen 14
N mit Werten aus einer mysql datenbank in java rechnen Java Basics - Anfänger-Themen 17
G Rechnen mit Long Variablen Java Basics - Anfänger-Themen 4
N Probleme beim Rechnen mit Integer und double Java Basics - Anfänger-Themen 4
W Variablen Rechnen mit "char" Java Basics - Anfänger-Themen 2
Joew0815 Compiler-Fehler Unexpected Type - Problem mit Variablen rechnen Java Basics - Anfänger-Themen 7
F Werte aus Tabelle vergleichen/rechnen Java Basics - Anfänger-Themen 5
C Mit Potenzen rechnen "Problem" Java Basics - Anfänger-Themen 3
M Mit Array rechnen Java Basics - Anfänger-Themen 9
T Rechnen in Arrays Java Basics - Anfänger-Themen 11
B von Ergebniss weiter rechnen Java Basics - Anfänger-Themen 3
S Rechnen mit Datum bzw. Uhrzeit Java Basics - Anfänger-Themen 3
S Datentypen Operatoren und Ausdrücke (formel richtig rechnen) Java Basics - Anfänger-Themen 8
N Mit long rechnen Java Basics - Anfänger-Themen 2
K Übungsblatt 13 Aufgabe 6 (Rechnen) Java Basics - Anfänger-Themen 12
C Mit Gleitkommazahlen rechnen Java Basics - Anfänger-Themen 20
T Rechnen mit Operatoren Java Basics - Anfänger-Themen 2
W Mit (char) rechnen Java Basics - Anfänger-Themen 3
F Mit Arrays rechnen Java Basics - Anfänger-Themen 12
H Datentypen Rechnen mit signed Byte-Array - unsinged byte Java Basics - Anfänger-Themen 3
B mit benutzereingaben rechnen Java Basics - Anfänger-Themen 4
L Bruch rechnen Java Basics - Anfänger-Themen 29
B mit Datum rechnen Java Basics - Anfänger-Themen 10
D Rechnen mit int Array Java Basics - Anfänger-Themen 9
M mit Uhrzeit rechnen Java Basics - Anfänger-Themen 11
T mit Winkel & Sinus rechnen / sin(30°)=2,5 Java Basics - Anfänger-Themen 7
A Rechnen mit big integer Java Basics - Anfänger-Themen 29
L Mit matrizen rechnen Java Basics - Anfänger-Themen 19
W Probleme mit double rechnen Java Basics - Anfänger-Themen 4
J Datentypen Rechnen mit unterschiedlichen Datentypen Java Basics - Anfänger-Themen 3
K mit einer int rechnen Java Basics - Anfänger-Themen 10
M Warum -48 rechnen? Java Basics - Anfänger-Themen 3
K Java Code rechnen Java Basics - Anfänger-Themen 7
F Rechnen mit komplexen Zahlen Java Basics - Anfänger-Themen 23
C Datentypen Unklarheiten beim Rechnen Java Basics - Anfänger-Themen 5
W Modulo rechnen Java Basics - Anfänger-Themen 3
H Datentypen Rechnen und Runden Java Basics - Anfänger-Themen 2
S Rechnen mit Zeitangaben Java Basics - Anfänger-Themen 5
Binary.Coder Doppeltes Hashing verläuft in "Endlosscheife" beim rechnen per Hand Java Basics - Anfänger-Themen 8
F Mit Anzahl Startparametern rechnen Java Basics - Anfänger-Themen 17
T mit List<Integer> rechnen Java Basics - Anfänger-Themen 9
O einfaches rechnen mit zahlen Java Basics - Anfänger-Themen 4
K Stunden zusammen Rechnen Java Basics - Anfänger-Themen 4
T mit Typen Date rechnen Java Basics - Anfänger-Themen 6
S mit Werten aus 2D-Array rechnen Java Basics - Anfänger-Themen 32
J Anfänger-Problem: Rechnen mit Java Java Basics - Anfänger-Themen 3
J Mit Java exp Rechnen ? Java Basics - Anfänger-Themen 4
P Mit double und BigDecimal rechnen Java Basics - Anfänger-Themen 6
K Wie zerlege Ich einen String zum Rechnen? Java Basics - Anfänger-Themen 3
D Rechnen mit zwei Klassen Java Basics - Anfänger-Themen 19
J Mit Zeitzonen rechnen! Java Basics - Anfänger-Themen 3
G Float schneidet nach dem Rechnen auf eine Stelle ab Java Basics - Anfänger-Themen 9
L Eingeben Rechnen Ausgeben - Leider nicht so einfach Java Basics - Anfänger-Themen 31
G Mit tastatureingaben rechnen Java Basics - Anfänger-Themen 10
B Großer Java bug beim rechnen? Java Basics - Anfänger-Themen 66
S mit Strings rechnen Java Basics - Anfänger-Themen 16
D mit request.getParameter("x") rechnen Java Basics - Anfänger-Themen 3
T mit byte rechnen. ? Java Basics - Anfänger-Themen 8
MrTical Zahlen einlesen um damit zu rechnen Java Basics - Anfänger-Themen 5
Safado modulo rechnen Java Basics - Anfänger-Themen 5
F mit Dualzahlen rechnen Java Basics - Anfänger-Themen 5
J Rechnen mit Dualzahlen Java Basics - Anfänger-Themen 5
C Bedingtes Rechnen Java Basics - Anfänger-Themen 64
G mit Strings rechnen (Unicode) Java Basics - Anfänger-Themen 15
H Modulo rechnen Java Basics - Anfänger-Themen 17
T Rechnen Java Basics - Anfänger-Themen 3
G Taschenrechner.aber Rechnen bring ich nicht zam! Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben