18.07 Последовательность чисел
Ошибка.
Попробуйте повторить позже
Задание выполняется с использованием прилагаемых файлов
Дана последовательность вещественных чисел. Из неё необходимо выбрать несколько подряд идущих чисел так, чтобы
каждое следующее число отличалось от предыдущего не более чем на . Какую максимальную сумму могут иметь
выбранные числа? В ответе запишите только целую часть максимально возможной суммы. Исходная последовательность
записана в виде одного столбца электронной таблицы.
Решение 1 (Excel):
В ячейку скопируем значение ячейки
.
В ячейку запишем формулу =ЕСЛИ(ЕСЛИ(ABS(A2-A1)<=20;B1+A2;A2)>=0;ЕСЛИ(ABS(A2-A1)<=20;B1+A2;A2);0)
Скопируем на весь стобей .
Найдём максимум из полученных значений с помощью формулы =МАКС
Целую часть от полученного значения запишем в ответ.
Решение 2 (прогой):
Откроем файл в Excel. Выделим все числа и скопируем их в текстовый документ. Для удобства с помощью комбинации
заменим все запяьые на точки. Получим вот такой файлик:
Теперь напишем программу для решения задачи:
f = open(’18.txt’) n = 500 a = [float(f.readline()) for x in range(n)] ans = -10 ** 20 for i in range(n): s = a[i] if s > ans: ans = s for j in range(i + 1, n): if abs(a[j] - a[j - 1]) <= 20: s += a[j] if s > ans: ans = s else: break print(int(ans))
Ошибка.
Попробуйте повторить позже
Задание выполняется с использованием прилагаемых файлов
Дана последовательность вещественных чисел. Из неё необходимо выбрать несколько подряд идущих чисел так, чтобы каждое следующее число отличалось от предыдущего не более чем на 14. Какую максимальную сумму могут иметь выбранные числа? В ответе запишите только целую часть максимально возможной суммы. Исходная последовательность записана в виде одного столбца электронной таблицы.
Пример входных данных:
Для указанных входных данных ответом будет число 29.
Решение 1 (Excel):
В ячейку скопируем значение ячейки
.
В ячейку запишем формулу =ЕСЛИ(ЕСЛИ(ABS(A2-A1)<=14;B1+A2;A2)>=0;ЕСЛИ(ABS(A2-A1)<=14;B1+A2;A2);0)
Скопируем на весь стобей .
Найдём максимум из полученных значений с помощью формулы =МАКС
Запишем в ответ только целую часть от полученного значения.
Решение 2 (прогой):
Откроем файл в Excel. Выделим все числа и скопируем их в текстовый документ.
Теперь напишем программу для решения задачи:
f = open(’18.txt’) elem = f.readlines() a = [] n = 500 for i in range(n): t = elem[i][:-1] t = t.replace(’,’, ’.’) a += [float(t)] ans = -10 ** 20 for i in range(n): s = a[i] if s > ans: ans = s for j in range(i + 1, n): if abs(a[j] - a[j - 1]) <= 14: s += a[j] if s > ans: ans = s else: break print(int(ans))
Ошибка.
Попробуйте повторить позже
Задание выполняется с использованием прилагаемых файлов
Дана последовательность вещественных чисел. Из неё необходимо выбрать несколько подряд идущих чисел так, чтобы каждое следующее число отличалось от предыдущего не более чем на 7. Какую минимальную сумму, большую 20, могут иметь выбранные числа? В ответе запишите только целую часть минимально возможной суммы. Исходная последовательность записана в виде одного столбца электронной таблицы.
Пример входных данных:
Для указанных входных данных ответом будет число 25.
Решение 1 (Excel): В ячейку скопируем значение ячейки
.
В ячейку запишем формулу =ЕСЛИ(ABS(A1-A2)<=7;A2+B1;A2)
Скопируем на весь стобей .
В ячейку запишем формулу =ЕСЛИ(И((B2-B1)=A2,B2>20),B2,100000)
Скопируем на весь стобей .
Найдём минимум из полученных значений с помощью формулы =МИН(C:C)
Полученное значение запишем в ответ.
Решение 2 (прогой):
Откроем файл в Excel. Выделим все числа и скопируем их в текстовый документ. Для удобства с помощью комбинации
заменим все запяьые на точки. Получим вот такой файлик:
Теперь напишем программу для решения задачи:
file = open(’18.txt’) f = [float(x) for x in file] summ = f[0] counter = 1 minim = 1000000 for i in range(1, len(f)): if abs(f[i] - f[i - 1]) <= 7: summ += f[i] counter += 1 else: summ = f[i] counter = 1 if summ > 20 and counter > 1: minim = min(minim, summ) print(int(minim))
Ошибка.
Попробуйте повторить позже
Задание выполняется с использованием прилагаемых файлов
Дана последовательность вещественных чисел. Из неё необходимо выбрать несколько подряд идущих чисел так, чтобы
каждое следующее отличалось от предыдущего не менее чем на . Какую максимальную сумму могут иметь
выбранные числа? В ответ запишите только целую часть (максимальная сумма
, в ответ указываем
)
Решение 1 (Excel):
В ячейку скопируем значение ячейки
.
В ячейку запишем формулу =ЕСЛИ(ЕСЛИ(ABS(A2-A1)>=20;B1+A2;A2)>=0;ЕСЛИ(ABS(A2-A1)>=20;B1+A2;A2);0)
Скопируем на весь стобей .
Найдём максимум из полученных значений с помощью формулы =МАКС
Полученное значение запишем в ответ.
Решение 2 (прогой):
Откроем файл в Excel. Выделим все числа и скопируем их в текстовый документ.
Теперь напишем программу для решения задачи:
f = open(’18.txt’) elem = f.readlines() a = [] n = 99 for i in range(n): t = elem[i][:-1] a += [int(t)] ans = -10 ** 20 for i in range(n): s = a[i] if s > ans: ans = s for j in range(i + 1, n): if abs(a[j] - a[j - 1]) >= 20: s += a[j] if s > ans: ans = s else: break print(ans)
Ошибка.
Попробуйте повторить позже
Дана последовательность вещественных чисел. Из неё необходимо выбрать несколько подряд идущих чисел так, чтобы
каждое следующее было больше предыдущего больше, чем на . Какую максимальную сумму могут иметь
выбранные числа?
В ответе запишите только целую часть максимально возможной суммы.
Исходная последовательность записана в виде одного столбца элекронной таблицы.
Пример входных данных:
48.1 |
10.6 |
20.4 |
34.1 |
95.3 |
97.2 |
81.3 |
Для указанных входных данных максимально возможная сумма равна 149.8, в ответе надо записать число 149.
Решение 1 (Excel):
В ячейку скопируем значение ячейки
.
В ячейку запишем формулу =ЕСЛИ(ЕСЛИ(A2-A1>10;B1+A2;A2)>=0;ЕСЛИ(A2-A1>10;B1+A2;A2);0)
Скопируем на весь стобей .
Найдём максимум из полученных значений с помощью формулы =МАКС
Целую часть от полученного значения запишем в ответ.
Решение 2 (прогой):
Откроем файл в Excel. Выделим все числа и скопируем их в текстовый документ.
Теперь напишем программу для решения задачи:
f = open(’18.txt’) a = [] for i in range(100000): n = f.readline() n = n.replace(’,’, ’.’) a += [float(n)] s = set() max_summa = -100000 for i in range(1, len(a)): if a[i] - a[i-1] > 10: s.add(a[i-1]) s.add(a[i]) else: max_summa = max(max_summa, sum(s)) s = set() print(int(max_summa))