Die Fläche ist eine ganze Zahl.Bei einem gegebenen Bereich die Seiten eines Rechtecks so berechnen, dass sie eine ähnliche Länge haben.
Gegeben eine Fläche, ich möchte Quadrate zeichnen, die Quadratmeter darstellen. So möchte ich zum Beispiel bei einem Bereich von 30 ein Rechteck von 6 x 5 oder 5 x 6 zeichnen, aber nicht eines von 2 x 15, weil das zu lang und dünn aussehen würde.
Ich kann auch akzeptieren, weniger Quadrate in der letzten Reihe zu zeichnen, also zum Beispiel für eine 33 Fläche, kann ich 6 x 5 Rechteck und eine letzte Reihe von 3 Quadraten zeichnen.
Ich versuchte Primfaktorzerlegung, aber zum Beispiel für 597 bekomme ich 3 und 199, zu lang und dünn.
habe ich versucht, quadratische Funktion, unter Verwendung der Formel
0 = x^2 + x - area
So würde ich die positive Lösung als eine der Seiten verwendet wird, und die andere Seite würde 1 Einheit länger sein.
Aber ich bekomme kein ganzzahliges Ergebnis, und Abrunden oder Verkleinern verändert den resultierenden Bereich.
Irgendwelche anderen Ideen? Gibt es einen bekannten Algorithmus dafür? Diese Frage: Fastest way to calculate rectangle sides from area? wurde geschlossen, aber ich denke, das ist eine gültige Frage.
Kapitalisierung & Rechtschreibfehler –
Während Dies funktioniert möglicherweise, fügen Sie bitte weitere Informationen zu Ihrer Antwort hinzu. Auch ist die Schleife irrelevant. 'sqrt (x) * sqrt (x) = x = sqrt (x²)' – cramopy
Danke euch beiden. Der Startwert der Breite ist Integer Teil von sqrt (Bereich) nicht die genaue sqrt. Die Schleife funktioniert also, wenn der Bereich kein exaktes Quadrat @ creepopy ist –