eolymp
Соревнования

PP2. Week 7: April 19 - 25

Java Regular Polygon

interface RegularPolygon {
  int getNumSides();
  double getSideLength();

  static int totalSide(RegularPolygon[] rpArray) {
  }

  default double getPerimeter() {
  }
  default double getInteriorAngle() {
  }
}

class EquilateralTriangle implements RegularPolygon {
  private double sideLength;

  public EquilateralTriangle(double sideLength) {
  }

  public int getNumSides() {
  }

  public double getSideLength() {
  }

  public String toString() {
  }
}

class Square implements RegularPolygon {
  private double sideLength;

  public Square(double sideLength) {
  }

  public int getNumSides() {
  }

  public double getSideLength() {
  }

  public String toString() {
  }
}

public class Main {
  public static void main(String[] args) {
    Scanner con = new Scanner(System.in);
    int n = con.nextInt();
    RegularPolygon[] rpArray = new RegularPolygon[n];
    ...
    con.close();
  }
}

Напишите программу согласно следующих требований:

  • Создайте интерфейс RegularPolygon с двумя абстрактными методами: getNumSides и getSideLength;
  • Напишите класс EquilateralTriangle, реализующий интерфейс, функция которого getNumSides возвращает 3, функция getSideLength возвращает переменную которая инициализируется конструктором;
  • Напишите класс Square, реализующий интерфейс, функция которого getNumSides возвращает 4, функция getSideLength возвращает переменную которая инициализируется конструктором;
  • Добавьте в интерфейс статический метод totalSides, который по массиву RegularPolygon[] возвращает сумму числа сторон всех фигур;

Добавьте два default метода:

  • getPerimeter (n * length, где n - число сторон)
  • getInteriorAngle ((n - 2 )π / n в радианах)

Входные данные

Первая строка содержит количество n (n100) геометрических фигур. Каждая следующая строка содержит название фигуры (Triangle или Square) и длину ее стороны (действительное число).

Выходные данные

Для каждой фигуры выведите ее название и длину стороны, периметр и значение внутреннего угла, как указано в примере выхода. В последней строке выведите количество сторон у всех фигур.

prb10496.gif

Лимит времени 1 секунда
Лимит использования памяти 128 MiB
Входные данные #1
3
Triangle 4
Square 10
Triangle 5
Выходные данные #1
Triangle 4.0000
Perimeter: 12.0000
Interior angle: 1.0472
Square 10.0000
Perimeter: 40.0000
Interior angle: 1.5708
Triangle 5.0000
Perimeter: 15.0000
Interior angle: 1.0472
Total sides: 10
Автор Михаил Медведев