标准输出不预期错误

时间:2018-02-09 06:32:23

标签: java

这是我遇到的其他问题,也有同样的问题。任何人都可以在下面指出我的逻辑错误:

问题:正多边形是一个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);                        
    }
}

请解释逻辑错误的位置。我注释掉了代码,否则我会不断收到错误,导致我无法提交问题。

1 个答案:

答案 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 );