Основная идея состоит в том, что каждая сумма – это сумма цифр, то есть она не может быть больше 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
var
menu, D, S: integer;
begin
Writeln('Введите значение меню');
Writeln('1 - известна большая диагональ');
Writeln('2 - известна меньшая диагональ');
Writeln('3 - Диагонали не известны');
Readln(Menu);
case menu of
1:
begin
Writeln('Введите площадь и значение большей диагонали');
Readln(s, d);
Writeln('Длина меньше диагонали равна: ', (2 * s) / d)
end;
2:
begin
Writeln('Введите площадь и значение меньшей диагонали');
Read(s, d);
Writeln('Длина меньше диагонали равна: ', (2 * s) / d);
end;
3:
Writeln('К сожалению волшебства не будет');
end;
end.