PascalABC.NET 3.7:
##var sumOfAP := function(a1, an, d: real):real → (a1 + an)/2*((an - a1)/d+1);var (a, b) := ReadInteger2('Введите a и b:');var sE := sumOfAP(a + a mod 2, b - b mod 2, 2);var sO := sumOfAP(a + 1 - a mod 2, b - 1 + b mod 2, 2);Print('Результат:', sE - sO)Пояснение:
Используется формула для нахождения суммы первых n членов арифметической прогрессии: , где
— первый член прогрессии,
— последний член,
—разность прогрессии.
n, counter, spisok, new_spisok = int(input()), 0, [], []
while counter != n:
spisok.append(int(input()))
counter += 1
c1, c2 = int(input()), int(input())
for i in spisok:
if c1 <= i <= c2:
new_spisok.append(i)
print(new_spisok, len(new_spisok))
Объяснение:
1) хз зачем там цикл while, но раз в условии написано, то сделал через него;
2) скорее всего работать нужно со списками, а не массивами, так как append - метод списка;
3) если нужно, могу объяснить каждую строку;
4) формат вывода массива не указан, поэтому вывод обычного массива с его длиной через запятую;
5) нижние слеши это пробелы типа)
Объяснение: