这是我遇到的其他问题,也有同样的问题。任何人都可以在下面指出我的逻辑错误:
问题:正多边形是一个n边多边形,其中所有边都具有相同的长度,并且所有角度具有相同的度数......(练习4.5)
这是我的回答:
import java.util.Scanner;
public class Exercise04_05 {
public static void main(String args[]) {
Scanner input = new Scanner(System.in);
System.out.print("Enter the number of sides: ");
double n = input.nextDouble();
System.out.print("Enter the side: ");
double s = input.nextDouble();
double area = n * Math.pow(s, 2) / 4 * Math.tan(Math.PI / n );
System.out.println("The area of the polygon is " + area);
}
}
请解释逻辑错误的位置。我注释掉了代码,否则我会不断收到错误,导致我无法提交问题。
答案 0 :(得分:0)
您的公式错误且包含错误。
第一个/ 4
是一个整数除法,四舍五入到int
,所以你得到的主要是一个错误。你必须使用/ 4.0
才能获得正确的分工。
计算多边形面积的公式是
A = 1/4 * n * s 2 * cot(PI / n)
注意它是cotangens,而不是tangens。由于java.math没有cotangens,你必须自己计算,例如1 / Math.tan(x)
。
所以最后这应该适合你:
double area = n / 4.0 * Math.pow(s, 2) / Math.tan(Math.PI / n );