Основная идея состоит в том, что каждая сумма – это сумма цифр, то есть она не может быть больше 18. Значит, надо разбивать каждое возможно получившееся число на однозначные и двузначные числа и смотреть, может ли такое быть.
1212 – возможно, например, из числа 666 (6+6 = 12, 6+6 = 12, итог: 1212)
129 – возможно, например, из числа 936 (9+3 = 12, 3+6 = 9, итог: 129)
123 – возможно, например, из числа 930
1218 – невозможно. Это число можно разбить только на два двузначных числа, но тогда 12 и 18 записаны в порядке возрастания, а по условию должно быть наоборот
1812 – возможно, например, из числа 993
312 – невозможно. Это число можно разбить либо на 3 и 12, либо на 31 и 2. В первом случае числа расположены в порядке возрастания, а во втором нельзя получить 31, так как сумма цифр не больше 18
912 – невозможно (аналогично с 312)
112 – возможно, например, из 920
Итого 5 чисел могут получиться.
ответ: 5
Поделитесь своими знаниями, ответьте на вопрос:
:найдите сумму элементов массива из 10 элементов, значения которых принадлежат промежутку (-20; 45)
begin
var n:=ReadInteger('Количество элементов массива: ');
var A:=ArrRandom(n,-50,50);
Writeln('*** Сгенерированный массив ***');
A.Println(',');
Write('Сумма элементов в диапазоне (-20;45) равна ');
Writeln(A.Where(x->x in [-20..45]).Sum)
end.
Тестовое решение:
Количество элементов массива: 10
*** Сгенерированный массив ***
-6,-29,3,7,-40,-44,-46,-15,3,-3
Сумма элементов в диапазоне (-20;45) равна -11