Пусть исходное число будет abc, где a - первая цифра, b - вторая, c - третья.
b,c - цифры => они принимают целые значения от 0 до 9. Так как число трехзначное, то a не может быть равно 0 => a принимает целые значения от 1 до 9.
Произведение двух цифр не превосходит 9*9=81.
Ищем произведения цифр в числе 123:
1 и 23 - неверно(1=1*1, но 23=1*c=> c=23>9)
12 и 3 - верно(1*3 и 3*4, записаны в порядке убывания)
Нам нужно найти наименьшее число, значит значения a и b как первых цифр числа должны быть минимальны.
По условию:
a*b=3
b*c=12
Подбираем значения a,b и c:
a=1; b=3; c=12/3=4 - верно, число 134
a=3; b=1; c=12/1=12 - неверно
В итоге, получили, что число 134 - минимальное.
ответ: 134
Поделитесь своими знаниями, ответьте на вопрос:
Вчём ошибка этой программы? она должна запрашивать ввод 2 чисед, а потом вызывать функцию с которой выведет сумму и разность числа var a, b, c: string; procedure summ(plus: string; minus: string); begin plus: =a+b; minus: =a+b; writeln('', plus, ''); writeln('', minus, ''); end; begin writeln('chislo'); readln(b); readln(b); summ (writeln('', plus, '', ''minus'') end.
1. В заголовке процедуры procedure summ(plus:string;minus:string); параметры plus и minus описаны, как строки. В теле процедуры обоим параметрам присваивается значение, равное соединению строк a и b, а вовсе не сумма чисел и их разность, как требует условие.
2. Поскольку параметры не имеют описателя var, после выхода из процедуры их исходное значение не изменяется.
3. Операторы Readn(b) дважды выполняют присваивание переменной b, а переменная a значения не получает.
4. Вызов процедуры summ неверен, поскольку вместо пары строковых фактических параметров используется вызов процедуры Writen, что синтаксически неверно.