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,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();
}
}
}