Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите решить задачу на Java

Алексей Пахомов Ученик (11), на голосовании 1 год назад
Задача:
Вводится число n (n >= 3), затем даются координаты n точек построчно. Найдите периметр этого многоугольника и его площадь. Выведите ответ построчно. Округлите ваш ответ до сотых.
Пример ввода:
4
0 0
4 0
4 4
0 4
Пример вывода:
16.0
16.0
Мой код:

 import java.util.Scanner; 

class Programm{

public static void main(String[] args){
Scanner scan = new Scanner(System.in);
int numberOfCoordinates = scan.nextInt();
int[][] coordinates = new int[numberOfCoordinates+1][2];
for(int i = 0; i < coordinates.length; i++){
for(int j = 0; j < 2; j++){
if(i != coordinates.length-1){
coordinates[i][j] = scan.nextInt();
} else {
coordinates[i][j] = coordinates[0][j];
}
}
}
System.out.println(getPerimeter(coordinates));
System.out.println(getArea(coordinates));
}

static double getArea(int[][] coordinates){
double firstLine = 0, secondLine = 0;;
for(int i = 0; i < coordinates.length-1; i++){
firstLine += coordinates[i][0] * coordinates[i+1][1];
secondLine += coordinates[i][1] * coordinates[i+1][0];
}
return (firstLine - secondLine) / 2;
}

static double getPerimeter(int[][] coordinates){
double perimeter = 0;
for(int i = 0; i < coordinates.length-1; i++){
perimeter += Math.sqrt(Math.pow((coordinates[i + 1][0] - coordinates[i][0]), 2) + Math.pow((coordinates[i + 1][1] - coordinates[i][1]), 2));
}
return perimeter;
}
}
Проблема: первый тест(из примера ввода и вывода) он проходит, а вот второй(неизвестно что там) - нет. Где ошибка? Заранее всем спасибо
Голосование за лучший ответ
Оракул Оракул (62089) 1 год назад
Все верно, только площадь по модулю возьмите Math.abs() и округление до 2 знаков после запятой добавьте.
Алексей ПахомовУченик (11) 1 год назад
Благодарю
Александр Искусственный Интеллект (301635) 1 год назад
не проходит неизвестно какой тест?
прикольно
может ты там денег кому-то не переводишь?
Алексей ПахомовУченик (11) 1 год назад
? Ну, тест с неизвестным вводом имеется ввиду. Что, именно происходит - пишу естественно я. Просто вывод неправильный получается
Похожие вопросы