Имя входного файла: стандартный ввод Имя выходного файла: стандартный вывод Лимит времени: 1 секунда Ограничение памяти: 256 мегабайт Формат входного файла В первой строке записано целое число N. Формат выходного файла Распечатайте ответ на задачу
Реализация на VBA Excell Если есть офис, то можете запустить программу. Код увидеть Alt+F11
Sub massiv() строка = 3 'не обязательно,номер строки для начала вывода на лист n = Cells(2, 3) 'не обязательно, вводим количество чисел Dim B(10000) As Integer 'резервируем память на 10000 целых чисел S = 0 'обнуляем сумму For i = 1 To n 'Начало цикла k = Rnd(1) 'Генерируем случайное число в диапазоне (0;1) k = k * 9 + 12 'Смещаем его в диапазон [12;20] k = Int(k) 'обрезаем, оставляя целое B(i) = k 'заполняем массив S = S + k 'считаем сумму Cells(строка, 3) = строка - 2 'не обязательно, вывод номера значеня Cells(строка, 4) = k 'Не обязательно вывод значения строка = строка + 1 'не обязательно, увеличить строку для вывода Next i 'Конец цикла Cells(строка, 3) = "сумма =" 'не обязательно, выводим надпись Cells(строка, 4) = S 'не обязательно, выводим сумму End Sub
Function Bin(s As String, z As Integer) As String Dim c As Integer Dim oct As Integer c = Val(s) Do oc = c Mod 2 c = c \ 2 Bin = Bin & Str(oc) Loop Until c = 0 Bin = StrReverse(Bin) If z = -1 Then Bin = "-" & Bin End Function
Sub z() Dim s As String, s1 As String Dim n As Integer, i As Integer, z As Integer Dim max s = InputBox("Введите строку: ") max = Null i = 1 Do While i <= Len(s) Select Case Mid(s, i, 1) Case 0 To 9 If z = 0 And i > 1 Then z = IIf(Mid(s, i - 1, 1) = "-", -1, 1) Else: z = 1 End If s1 = s1 + Mid(s, i, 1) If i = Len(s) Then GoSub 1 Case Else: If s1 <> "" Then GoSub 1 End Select i = i + 1 Loop MsgBox ("max=" & max) End 1: n = z * Val(s1) MsgBox (n & "; двоичная форма: " & Bin(s1, z)) If IsNull(max) Then max = n If max < n Then max = n z = 0 s1 = "" Return End Sub
Если есть офис, то можете запустить программу.
Код увидеть Alt+F11
Sub massiv()
строка = 3 'не обязательно,номер строки для начала вывода на лист
n = Cells(2, 3) 'не обязательно, вводим количество чисел
Dim B(10000) As Integer 'резервируем память на 10000 целых чисел
S = 0 'обнуляем сумму
For i = 1 To n 'Начало цикла
k = Rnd(1) 'Генерируем случайное число в диапазоне (0;1)
k = k * 9 + 12 'Смещаем его в диапазон [12;20]
k = Int(k) 'обрезаем, оставляя целое
B(i) = k 'заполняем массив
S = S + k 'считаем сумму
Cells(строка, 3) = строка - 2 'не обязательно, вывод номера значеня
Cells(строка, 4) = k 'Не обязательно вывод значения
строка = строка + 1 'не обязательно, увеличить строку для вывода
Next i 'Конец цикла
Cells(строка, 3) = "сумма =" 'не обязательно, выводим надпись
Cells(строка, 4) = S 'не обязательно, выводим сумму
End Sub
Function Bin(s As String, z As Integer) As String
Dim c As Integer
Dim oct As Integer
c = Val(s)
Do
oc = c Mod 2
c = c \ 2
Bin = Bin & Str(oc)
Loop Until c = 0
Bin = StrReverse(Bin)
If z = -1 Then Bin = "-" & Bin
End Function
Sub z()
Dim s As String, s1 As String
Dim n As Integer, i As Integer, z As Integer
Dim max
s = InputBox("Введите строку: ")
max = Null
i = 1
Do While i <= Len(s)
Select Case Mid(s, i, 1)
Case 0 To 9
If z = 0 And i > 1 Then
z = IIf(Mid(s, i - 1, 1) = "-", -1, 1)
Else: z = 1
End If
s1 = s1 + Mid(s, i, 1)
If i = Len(s) Then GoSub 1
Case Else:
If s1 <> "" Then GoSub 1
End Select
i = i + 1
Loop
MsgBox ("max=" & max)
End
1: n = z * Val(s1)
MsgBox (n & "; двоичная форма: " & Bin(s1, z))
If IsNull(max) Then max = n
If max < n Then max = n
z = 0
s1 = ""
Return
End Sub