Предмет: Информатика, автор: Ciara17

Пожалуйста, помогите! Не понимаю даже, как к заданию подступиться.

На языке программирования Паскаль написан текст программы. Получив на вход число x, этот алгоритм печатает два числа a и b. Укажите наименьшее из таких чисел x, при котрых алгоритм печатает сначала 3, а потом 7.

​var x, a, b: integer;
begin
​readln(x);
​a:=0; b:=0;
​while x>0 do
​begin
​a:=a + 1;
​b:=b + (x mod 10);
​x:=x div 10;
​end;
​writeln(a); write(b);
end.

Ответы

Автор ответа: liris22
0
Для начала стоит понять, что делает программа. При выполнении данного алгоритма из числа х пошагово выделяется последний разряд (последняя цифра числа х) и данная цифра суммируется к числу b. Число а содержит количество разрядов (количество цифр) в числе х.
Задача: получить a = 3, b = 7
Для этого необходимо взять трехзначное число, сумма цифр которого равна 7, наименьшее подходящее число - 106 (Число должно быть трехзначное - значит меньше 100 оно быть не может, но оно должно быть как можно ближе к 100, поэтому, например, число 115 не подойдет, т.к. по заданию нужно указать наименьшее из подходящих чисел, т.е. 106).

Похожие вопросы