import java.io.*;
import java.util.Scanner;
class GFG {
public static void main (String[] args) {
Scanner in = new Scanner(System.in);
int area = in.nextInt();
int peri=in.nextInt();
double len,bre;
double temp=Math.sqrt((peri*peri)-(16*area));
len=(peri+temp)/4;
bre=(peri-temp)/4;
System.out.println(len+" "+ bre);
}
}
我制作了这个程序,从(peri + temp)/ 4得到长度; (peri-temp)/ 4的宽度和宽度; 这是正确的方法吗? 很抱歉没有提前发布代码请upvote
答案 0 :(得分:3)
所以如果一个矩形是x高度和y宽度,那么:
所以我们基本上有两个联立方程,xy = A,2x + 2y = B
x = A / y所以
B = 2A / y + 2y所以
yB = 2A + 2y * y
2y * y - yB + 2A = 0
是二次方并且可以使用二次方程
求解y = B + - sqrt(B * B - 4 * 2 * 2A)/(2 * 2)
或简化:y = B + - sqrt(B * B - 16 * A)/ 4
然后你从A / y获得x
注意 - 你得到2个解决方案,因为高度可能等于宽度,反之亦然