ответ: 1499 9949
Python:
def f(n):
digits = [int(i) for i in str(n)]
# 1
first_sum = digits[0] + digits[1]
# 2
second_sum = digits[1] + digits[2]
# 3
third_sum = digits[2] + digits[3]
# 4
amounts = [first_sum, second_sum, third_sum]
del amounts[amounts.index(min(amounts))]
# 5
amounts.sort()
return int(str(amounts[0]) + str(amounts[1]))
numbers = []
for x in range(1000, 10000):
if f(x) == 1318:
numbers.append(x)
print(numbers[0], numbers[-1])
Поделитесь своими знаниями, ответьте на вопрос:
1. Какой ответ выдаст программа, если в массиве несколько элементов, удовлетворяющих условию задачи? Почему? 2. Что нужно изменить в программе, чтобы выдавался не первый из найденных элементов, а последний? 3. Измените условие цикла while, так чтобы использовалась логическая операция not.
PascalABC
Объяснение:
1)
begin
WriteLn('Введите размер массива N: ');
var n := ReadInteger;;
var a := ArrRandomInteger(n, -20, 20);
a.PrintLn;
WriteLn('Сумма элементов, которые оканчиваются на число 2, равна ', a.Where(x -> (x mod 10 = 2) or (x mod 10 = -2)).Sum);
end.
2)
begin
var a := ArrRandomInteger(10, -10, 10);
a.PrintLn;
WriteLn('Индексы отрицательных нечетных элементов:');
foreach var i in a.Indices do
if (a[i].IsOdd) and (a[i] < 0) then Write(i, ', ');
end.