2402_83557986 2024-11-01 12:18 采纳率: 0%
浏览 12

求正n边形的面积和周长

在一个正n边形(Regular Polygon)中,所有边的边长都相等,且所有角的度数相同(即这个多边形是等边、等角的)。我们已经从下列接口IShape实现了一个正n边形类RegularPolygon。其构造方法为:RegularPolygon(int n,double side); 其中n为边数,side为边长。

从键盘输入正n边形的边数n和边长a,请编程计算该正n边形的面积和周长。

interface IShape {// 接口

double getArea(); // 求面积

double getPerimeter();// 求周长

  • 写回答

1条回答 默认 最新

  • 李某[隻] 2024-11-01 13:37
    关注
    
    import java.util.Scanner;
    
    interface IShape {
        double getArea(); // 求面积
        double getPerimeter(); // 求周长
    }
    
    class RegularPolygon implements IShape {
        private int n; // 边数
        private double side; // 边长
    
        public RegularPolygon(int n, double side) {
            this.n = n;
            this.side = side;
        }
    
        @Override
        public double getArea() {
            return (n * side * side) / (4 * Math.tan(Math.PI / n));
        }
    
        @Override
        public double getPerimeter() {
            return n * side;
        }
    }
    
    public class Main {
        public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);
    
            System.out.print("请输入正n边形的边数 n: ");
            int n = scanner.nextInt();
    
            System.out.print("请输入正n边形的边长 a: ");
            double side = scanner.nextDouble();
    
            RegularPolygon polygon = new RegularPolygon(n, side);
            
            double area = polygon.getArea();
            double perimeter = polygon.getPerimeter();
    
            System.out.printf("正%d边形的面积为: %.2f\n", n, area);
            System.out.printf("正%d边形的周长为: %.2f\n", n, perimeter);
            
            scanner.close();
        }
    }
    
    
    评论

报告相同问题?

问题事件

  • 创建了问题 11月1日