Alle Herausforderungen
Schwierig 0 gelöst 0% Erfolgsquote

Schneide ein Rechteck in Quadrate

Finde die minimale Anzahl gerader Schnitte, um nur Quadrate zu erhalten.

Wähle bei jedem Zug ein Rechteck aus und schneide es vollständig, parallel zu einer Seite, sodass zwei Rechtecke mit positiven ganzzahligen Seitenlängen entstehen. Fahre fort, bis jedes Teilstück ein Quadrat ist. Die Quadrate dürfen unterschiedlich groß sein. Zähle die Schnitte, nicht die Stücke.

Implementiere rectangle_cutting(height, width).

Eingabe

height: Die Höhe des Startrechtecks.

width: Die Breite des Startrechtecks.

Ausgabe

Gib die minimale Anzahl der benötigten Schnitte zurück.

Einschränkungen

1 ≤ height, width ≤ 500. Eine Drehung verändert die Antwort nicht.

Beispiele

Beispiel 1
Eingabe:
width = 3
height = 2

Erwartete Ausgabe:
expected = 2
Eingabe:
long long width = 3;
long long height = 2;

Erwartete Ausgabe:
long long expected = 2;
Eingabe:
long width = 3;
long height = 2;

Erwartete Ausgabe:
long expected = 2;

Erläuterung

Schneide ein 2 × 2 Quadrat ab, es bleibt ein 2 × 1 Rechteck übrig. Ein weiterer Schnitt teilt den Rest in zwei Einheitsquadrate.

Beispiel 2
Eingabe:
width = 4
height = 4

Erwartete Ausgabe:
expected = 0
Eingabe:
long long width = 4;
long long height = 4;

Erwartete Ausgabe:
long long expected = 0;
Eingabe:
long width = 4;
long height = 4;

Erwartete Ausgabe:
long expected = 0;

Erläuterung

Das Startrechteck ist bereits ein Quadrat.

Referenzen

Diese Aufgabe wurde für CodeUtility angepasst. Beachte die oben genannten Vorgaben und Einschränkungen.

Von anderen lernen

Community-Lösungen

Noch keine veröffentlichten Lösungen. Löse die Aufgabe und teile als Erster eine Lösung.