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

Пожалуйста с подробностями

Приложения:

Ответы

Автор ответа: TemaZpro
1

Ответ: 500.

Код на языке Pascal:

var x, L, M: integer;

begin readln(x); L:=0; M:=0;

while x > 0 do begin

L:= L + 1; x:= x div 10;

if L mod 2 = 0 then

M:= M+ (x mod 10);

end; writeln(L); write(M);

end.

Объяснение:

1) Объявляются переменные x, L, M типа integer

2) Ввод пользователем значения x

3) Цикл while (пока X больше 0, он будет выполняться)

3.1) Переменной L будет прибавляться +1 каждую итерацию цикла (подсчет количества цифр в числе X)
3.2) Переменная X будет целочисленно делиться на 10 каждую итерацию
3.3) Условие: если L (количество цифр числа X) будет четным, то выполнится алгоритм: переменной M прибавится последняя цифра числа X (после деления на 10) - x mod 10.

4) Вывод результата на экран: количество цифр числа x и их сумма (L и M)

Чтобы получить L = 3, M = 5, необходимо подать минимально возможное число, количество цифр которого будет ЧЕТНЫМ было 3 и сумма четных цифр давала 5.

Таким числом является: 500

Потому что оно трехзначное (L = 3) и сумма четных цифр M = 5. Индексы в программировании начинаются с 0, то есть на нулевом (четном) месте стоит цифра 5, на первом месте (нечетном) стоит 0 и на втором (четном) стоит 0. Однако наши нули после каждого деления на 10 отлетают и у нас по итогу вообще осталось в X =5. Как только первй раз условие выполнилось, значение M стало 5, а дальше оно не выполнится, потому что после прибавления к L + 1, производилось деление X на 10, из-за чего самая правая цифра убиралась.


Kirilhl: Я пытался выполнить цикл x mod2 =0 , а там не х, а L , но большое спасибо
Похожие вопросы
Предмет: Химия, автор: Hollo505