Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import kotlin.math.abs
- /**
- * Содержит информацию о здании
- *
- * @param x - координата здания по оси X
- * @param y - координата здания по оси Y
- * @param floors - количество этажей в здании
- */
- class Building(x_param: Int, y_param: Int, floors_param: Int) {
- val x = x_param
- val y = y_param
- val floors = floors_param
- val floorHeight = 3
- // Возвращает X координату здания
- fun getParamX(): Int {
- return x
- }
- //Возвращает Y координату здания
- fun getParamY(): Int {
- return y
- }
- // Возвращает высоту здания
- fun getParamHeight(): Int {
- return floors * floorHeight
- }
- }
- /**
- * Нахождение расстнояния между площадками
- *
- *@param listOfBuildings - список экземпляров класса Buiding
- *
- *@return distance - необходимая длина кабеля
- */
- fun cabelLength(listOfBuildings: List<Building>): Int{
- var distance = 0
- // Расчёт длины кабеля
- // Манхэтанское расстояние плюс удвоенная высота здания
- for (i in 0..listOfBuildings.lastIndex) {
- for (j in i+1..listOfBuildings.lastIndex){
- distance += abs(listOfBuildings[i].getParamX() - listOfBuildings[i].getParamY())
- + abs(listOfBuildings[j].getParamX() - listOfBuildings[j].getParamY())
- + listOfBuildings[i].getParamHeight() + listOfBuildings[j].getParamHeight()
- }
- }
- return(distance)
- }
- fun main(args: Array<String>) {
- val vainera16 = Building(13, 2, 3)
- val malisheva53 = Building(5, 14, 8)
- val malisheva5 = Building(6, 8, 9)
- val tatisheva69 = Building(3, 2, 1)
- val listOfBuildings = listOf(vainera16, malisheva53, malisheva5, tatisheva69)
- println("Необходимая длина кабеля - ${cabelLength(listOfBuildings)} м")
- }
Add Comment
Please, Sign In to add comment