Консультация № 188744
29.01.2016, 23:02
0.00 руб.
0 3 1
Здравствуйте! У меня возникли сложности с таким вопросом:
Ниже записан алгоритм. Получив на вход число x, этот
алгоритм печатает два числа a и b. Укажите наименьшее из таких чисел x,
при вводе которых алгоритм печатает сначала 3, а потом 20.

Паскаль
program B20;
var x, a, b: integer;
begin
readln(x);
a := 0; b := 0;
while x > 0 do
begin
a := a + 1;
if x mod 2 = 0 then
b := b+ x mod 10;
x := x div 10;
end;
writeln(a); write(b);
end.

Обсуждение

давно
Старший Модератор
312929
1973
30.01.2016, 16:39
общий
Адресаты:
Могу дать подсказку: из двух выводимых программой значений a и b первое содержит число цифр числа x, второе - сумму тех его цифр, которые кратны двум.
давно
Посетитель
7438
7205
04.02.2016, 16:59
общий
это ответ
Здравствуйте, Посетитель - 399097!
Как правильно заметил в мини-форуме Алексей Коцюрбенко,
в переменной a считается количество цифр числа х, а в b - сумма тех его цифр, которые кратны двум.
Осталось найти наименьшее из таких чисел.
Заметим, что для того, чтобы число было минимальным, цифры должны быть отсортированы по-возрастанию,
т.е. старшая цифра должна быть минимальной.
1) Первая цифра должна быть такой, чтобы сумма оставшихся двух была меньше или равно 16 = 8 + 8
Значит, первая цифра 20 - 16 = 4
2) Вторая цифра должна быть такой, чтобы последняя цифра была меньше или равно 8
Значит, вторая цифра 16 - 8 = 8
3) Ну и последняя цифра 20 - 4 - 8 = 8
Итого, х = 488
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
давно
Посетитель
7438
7205
04.02.2016, 17:00
общий
Адресаты:
Ждали-ждали от Вас попыток что-то сделать самостоятельно. Так и не дождались... Прискорбно...
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
Форма ответа