Ich stehe vor einem Problem, bei dem mir ein Raum der Größe n und eine Reihe von Schritten gegeben werden, die ich unternehmen kann, um durch den Raum zu gelangen. Der Raum wird immer eine ganzzahlige Größe haben, ebenso wie die Stufen. Derselbe Schritt kann mehrmals durchgeführt werden. Mein Ziel ist es, die Gesamtzahl der möglichen Wege zu finden, den Raum zu durchqueren, ohne die Größe des Raums zu überschreiten. Ein Beispiel für eine Benutzereingabe wäre
Wobei die erste ganze Zahl, 5, die Größe des Raums ist und 9 1 3 5 die möglichen Schritte sind, die ich unternehmen kann. Die Funktion/der Algorithmus würde etwa Folgendes zurückgeben
Code: Select all
5  // Room size
1 1 1 1 1
1 1 3
1 3 1
3 1 1
5
Konzeptionell bin ich mir der Vorgänge sehr bewusst. Ich habe darauf geachtet, dass die Funktion anscheinend mit den niedrigsten Werten beginnt und von dort aus aufbaut. Das Problem, das ich habe, ist, das aus meinem Kopf in funktionierenden Code zu bekommen.
Aktueller Code, an dem ich gearbeitet habe:
Code: Select all
public static void main(String[] args) {
Scanner Scan = new Scanner(System.in);
int ArraySize;
int[] num = new int[100];
int temp;
int i, n, j;
int roomLength;
System.out.println("Size of Room: ");
roomLength = Scan.nextInt();
System.out.println("\nTotal numbers that will be entered: ");
n = Scan.nextInt();
System.out.println("\nNumbers:");
for (i = 0 ; i < n; i++){
num[i] = Scan.nextInt();
}
for (j = 1; j