В
Все
М
Математика
А
Английский язык
Х
Химия
Э
Экономика
П
Право
И
Информатика
У
Українська мова
Қ
Қазақ тiлi
О
ОБЖ
Н
Немецкий язык
Б
Беларуская мова
У
Українська література
М
Музыка
П
Психология
А
Алгебра
Л
Литература
Б
Биология
М
МХК
О
Окружающий мир
О
Обществознание
И
История
Г
Геометрия
Ф
Французский язык
Ф
Физика
Д
Другие предметы
Р
Русский язык
Г
География
rzd1
rzd1
18.01.2022 08:33 •  Информатика

Ниже на пяти языках записан алгоритм. получив на вход число x, этот алгоритм печатает два числа a и b. укажите наименьшее из таких чисел x, при вводе которых алгоритм печатает сначала 4, а потом 17. паскаль; program b20; var x, a, b, d: integer; begin readln(x); a : = 0; b : = 0; d : = 0; while x > 0 do begin if d mod 2= 0 then a : = a + x mod 10 else b : = b + x mod 10; x : = x div 10; d: =d + 1 end; writeln(a); write(b); end.

Показать ответ
Ответ:
dimaalexandrovi
dimaalexandrovi
28.05.2020 12:02

Наименьшее число - 8094

Из алгоритма видно, что сначала сравнивают, четно или нет число d. Если четно, то берут остаток от деления числа на 10, т.е крайнюю правую цифру числа и суммируют ее с a, если не четно, то суммируют c b. Затем прибавляют 1 к d, и получают целую часть от деления x на 10. Т.к изначально d = 0, то можно сделать вывод о том, что в переменной a хранится сумма всех цифр x, которые стоят на нечетных местах, а в переменной b - сумма цифр, стоящих на четных местах(Считая справа, т.к алгоритм работает справа налево). 17 можно получить, если сложить 9 и 8. Таким образом, мы выставляем 9 и 8 на четные позиции, а 4 ставит крайней справа, и тогда между 8 и 9 окажется 0. Так мы получим число 8094

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота