Erste Schritte Große/kleine Kisten stapeln bis gewünschte Höhe

Kampfunterhose

Neues Mitglied
Guten Abend!

Da vor kurzem das Infostudium angefangen hat und somit auch das Programmieren mit Java, stehe ich nun vor einem kleinen Problem. Und zwar kommen wir langsam aber sicher mit den Basics voran und kriegen dafür jede Woche Aufgaben, welche auch abgenommen werden. Eine dieser Aufgaben ist :

Wir sollen ein Programm schreiben, welches dem User ermöglicht eine Anzahl an kleinen Kisten (Höhe: 1) und große Kisten (Höhe: 5), sowie eine gewünschte Höhe einzugeben. Das Programm soll dann berechnen ob und wie es möglich ist den Stapel mit der gewünschten Höhe zu bauen, was an sich ja nicht sonderlich schwierig ist.

Jedoch stehe ich nun vor dem Problem, dass wenn eine Höhe von 11 gewünscht ist, diese ja auch aus 2 großen Kisten und 3 kleinen gebaut werden kann und 2 kleine Kisten einfach übrig bleiben, jedoch der Stapel nicht aus 3 großen Kisten gebaut werden kann. Eigentlich eine wirklich simple Aufgabe, was mich anfangs auch gewundert hat, allerdings stehe ich bei näherer Betrachtung was das angeht grade aufm Schlauch... o_O

Wenns genau passt, oder die Kisten sowieso nicht für die Höhe ausreichen ists ja sehr einfach, wie man dem Code entnehmen kann

Java:
import java.util.Scanner;

public class KistenStapeln {

    public static void main(String[] args) {

        Scanner in = new Scanner(System.in);

        System.out.print("Geben Sie bitte die Anzahl kleiner Kisten ein: ");
        int eingabeKlein = in.nextInt();

        System.out.print("Geben Sie bitte die Anzahl großer Kisten ein: ");
        int eingabeGroß = in.nextInt();

        System.out.print("Geben Sie bitte die Höhe des Zielstapels ein: ");
        int eingabeHöhe = in.nextInt();

        if ((eingabeKlein * 1) + (eingabeGroß * 5) == eingabeHöhe) {
            System.out.print("Ja, ein Stapel der Höhe " + eingabeHöhe + " kann aus " + eingabeKlein + " kleinen und "
                    + eingabeGroß + " großen Kisten gebaut werden.");
        } else {
            if ((eingabeKlein * 1) + (eingabeGroß * 5) < eingabeHöhe) {
                System.out.print("Nein, ein Stapel der Höhe " + eingabeHöhe + " kann nicht aus " + eingabeKlein
                        + " kleinen und " + eingabeGroß + " großen Kisten gebaut werden.");
            } else {
                if ((eingabeKlein * 1) + (eingabeGroß * 5) > eingabeHöhe) {

                }
            }

            in.close();
        }
    }

}

Ich dachte da einfach direkt an if & else was vielleicht nicht die hübscheste Lösung bis hier hin ist, aber man muss sich schließlich auch erstmal rantasten. Da wir auch noch nicht so viele Methoden/befehle etc. gelernt haben würd ichs gerne aufs simpelste reduzieren.

Weiß leider nicht was ich nach dem letzten if schreiben soll und bezweifle allgemein langsam das if und else mir da weiterhelfen wird oder ich nicht eventuell komplett nen Denkfehler hab, vielleicht denke ich auch einfach zu kompliziert :confused:

Kann mir da jemand womöglich weiterhelfen? Gibts da evtl irgendeinen Befehl der mich weiterbringt?
 
X

Xyz1

Gast
Wenn die Summe der Kistenhöhen größer ist, als die gesuchte Höhe, dann können logischerweise nicht alle Kisten auf die gewünschte Höhe gestapelt werden. Aber das wolltest du bestimmt nicht hören.

Also zum Bleistift soll 7 erreicht werden und es gibt 4,4,1,1,1.
Das ist ein Problem, denn
4+4 zu groß,
4+1 zu klein und
4+1+1 zu klein.
 
Zuletzt bearbeitet von einem Moderator:
X

Xyz1

Gast
Emh, ich meinte, 6,3,2,2. (Gesucht: 7)
6 darf nicht gewählt werden! Das Problem ist vollständig.
 

Neue Themen


Oben