# Код на ruby 2.2.3p173 def distance(x1, y1, x2, y2) return ((x1 - x2) ** 2.0 + (y1 - y2) ** 2.0) ** 0.5 end
def zadanie(points) return 0 if points.size < 2
s = 0 for i in 1...points.size s += distance(points[i-1][0], points[i-1][1], points[i][0], points[i][1]) end return s end
# Примеры применения p zadanie([[1,1]]) p zadanie([[1,1],[2,2]]) p zadanie([[1,1],[2,1],[3,1],[4,1],[5,1],[6,1],[7,1],[8,1],[9,1]]) p zadanie([[0,1],[2,1],[3,2],[4,1],[5,1],[6,1],[7,2],[8,1],[9,1],[7,2],[8,1],[9,1]])
// PascalABC.NET 3.0, сборка 1076 begin var n:=ReadInteger('Введите количество элементов массива: '); var a:=ArrRandom(n,1000,10000); Write('Исходный массив: ',a,#13#10); Write('Множество цифр из разряда сотен: '); a.Select(x->(x mod 1000) div 100).Sorted.Distinct.Println(',') end.
Тестовое решение: Введите количество элементов массива: 8 Исходный массив: [9374,4420,8856,8274,7555,2461,8302,6325] Множество цифр из разряда сотен: 2,3,4,5,8
2. "Школьный вариант"
// PascalABC.NET 3.0, сборка 1076 var i,n:integer; sd:set of 0..9; a:array[1..50] of integer; begin Write('Введите количество элементов массива: '); Read(n); Randomize; Write('Исходный массив: '); sd:=[]; for i:=1 to n do begin a[i]:=Random(9001)+1000; Write(a[i],' '); Include(sd,(a[i] mod 1000) div 100) end; Writeln; Write('Множество цифр из разряда сотен: '); for i:=0 to 9 do if i in sd then Write(i:2); Writeln end.
Тестовое решение: Введите количество элементов массива: 8 Исходный массив: 5332 4215 7231 3399 6989 8904 7804 3517 Множество цифр из разряда сотен: 2 3 5 8 9
ответ:1110011.10000010.10111.1001010
Объяснение:
Нужно перевести 115, 130, 23, 74 в двоичную систему счисления.
1110011 = 115
10000010 = 130
10111 = 23
1001010 = 74
Теперь меняем и записываем так:
1110011.10000010.10111.1001010