add UE10_Rekursion3

This commit is contained in:
AlexBa16
2025-01-07 12:02:42 +01:00
parent 748edd0631
commit 1fe376b4d9
5 changed files with 101 additions and 12 deletions

View File

@@ -0,0 +1,6 @@
Anleitung um JavaFX zum laufen zu bringen:
1) "File" -> "Project Structure" -> "Libraries" -> "+" -> "Java" -> Pfad zum LIB Ordner in JavaFX -> "OK"
3) Neben "Run" Knopf -> "Edit Configurations" -> "Modify Options" -> "Add VM options" -> --module-path "\path\to\javafx-sdk-23.0.1\lib" --add-modules javafx.controls,javafx.fxml (pfad austauschen)
IMMER direkt auf den "lib" ordner

View File

@@ -10,19 +10,19 @@ public class UE09_Rekursion2 {
int[][] file1 = readFile("src/UE09_191124_Rekursion2/UE09_triangle1.txt");
int[][] file2 = readFile("src/UE09_191124_Rekursion2/UE09_triangle2.txt");
int[][] file3 = readFile("src/UE09_191124_Rekursion2/UE09_triangle.txt");
System.out.println("\n" + maxTotalRekursion(file1, 0, 0));
System.out.println("\n" + maxTotalRekursion(file2, 0, 0));
System.out.println("\n" + maxTotalRekursion(file1, 0, 0)); //23
System.out.println("\n" + maxTotalRekursion(file2, 0, 0)); //1074
//// System.out.println("\n" + maxTotalRekursion(file3, 0, 0)); //Braucht ewig lange, da File sehr groß
System.out.println("\n" + maxTotal(file1));
System.out.println("\n" + maxTotal(file2));
System.out.println("\n" + maxTotal(file3));
System.out.println(longestCollatzSequence(999999));
System.out.println(longestCollatzSequence(13));
System.out.println(collatzSequenceLength(13));
int[] coins = new int[]{200, 100, 50, 20, 10, 5, 2, 1};
System.out.println(coinSums(200, coins, 0));
System.out.println(coinSums(10, new int[]{200, 100, 50, 20, 10, 5, 2, 1}, 0));
System.out.println(coinSums(2, new int[]{200, 100, 50, 20, 10, 5, 2, 1}, 0));
System.out.println("\n" + maxTotal(file1)); //23
System.out.println("\n" + maxTotal(file2)); //1074
System.out.println("\n" + maxTotal(file3)); //7273
System.out.println(longestCollatzSequence(999999)); //837799
System.out.println(longestCollatzSequence(13)); //9
System.out.println(collatzSequenceLength(13)); //10
int[] coins = new int[]{200, 100, 50, 20, 10, 5, 2, 1}; //73682
System.out.println(coinSums(200, coins, 0)); //11
System.out.println(coinSums(10, new int[]{200, 100, 50, 20, 10, 5, 2, 1}, 0)); //11
System.out.println(coinSums(2, new int[]{200, 100, 50, 20, 10, 5, 2, 1}, 0)); //2
}
public static int[][] readFile(String file) {

View File

@@ -0,0 +1,50 @@
package UE10_070125_Rekursion3;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.canvas.Canvas;
import javafx.scene.canvas.GraphicsContext;
import javafx.scene.layout.BorderPane;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
import java.util.ArrayList;
import java.util.List;
public class UE10_Rekursion3_Aufgabe1 extends Application {
static final int canvasWidth = 1000;
static final int canvasHeight = 500;
Canvas canvas = new Canvas(canvasWidth, canvasHeight);
GraphicsContext gc = canvas.getGraphicsContext2D();
public static void main(String[] args) {
//Aufgabe 1
Application.launch(args);
}
@Override
public void start(Stage primaryStage) {
primaryStage.setResizable(false);
primaryStage.setScene(new Scene(new BorderPane(canvas)));
primaryStage.show();
gc.setFill(Color.LIGHTGRAY);
gc.fillRect(0, 0, canvas.getWidth(), canvas.getHeight());
int side = 100;
drawRec((canvasWidth - side) / 2, canvasHeight - side - 10, side);
}
private void drawRec(int xCord, int yCord, int side) {
if (side < 2) return;
gc.setFill(Color.WHITE);
gc.fillRect(xCord, yCord, side, side);
gc.setStroke(Color.BLACK);
gc.setLineWidth(1);
gc.strokeRect(xCord, yCord, side, side);
int newSide = side * 3 / 4;
drawRec(xCord - newSide, yCord - newSide, side / 2);
drawRec(xCord + side * 5 / 4, yCord - newSide, side / 2);
}
}

View File

@@ -0,0 +1,33 @@
package UE10_070125_Rekursion3;
import java.util.ArrayList;
import java.util.List;
public class UE10_Rekursion3_Aufgabe2 {
public static void main(String[] args) {
//Aufgabe 2
System.out.println("\n(9,3)");
summingUp(9, 3, new ArrayList<>());
System.out.println("\n(9,2)");
summingUp(9, 2, new ArrayList<>());
System.out.println("\n(45,9)");
summingUp(45, 9, new ArrayList<>());
System.out.println("\n(28,4)");
summingUp(28, 4, new ArrayList<>());
}
public static void summingUp(int number, int count, List<Integer> list) {
if (number == 0 && count == 0) {
System.out.println(list.toString().replaceAll("\\D", ""));
return;
}
if (number <= 0 || count <= 0) return;
int start = 9;
if (!list.isEmpty()) start = list.getLast() - 1;
for (int i = start; i >= 1; i--) {
list.add(i);
summingUp(number - i, count - 1, list);
list.removeLast();
}
}
}