Предмет: Информатика,
автор: nikitagubin2004
25 БАЛЛОВ!!
Вася написал такую функцию:
var s: integer;
begin
s := 1;
while n <> 0 do begin
s := s * (n mod 10);
n := n div 10;
end;
f := s;
end;
А затем вычислил значение f(512), оно оказалось равным 10. Затем пришла Маша и заменила в его коде в двух строках число 10 на число 2. Чему теперь будет равно значение f(512)? В ответе запишите одно целое число.
Ответы
Автор ответа:
1
Ответ:
0
Объяснение:
Данная программа находит произведение цифр числа:
- пока n не равняется 0 делаем:
- умножаем s на остаток от деления n на 10,
- присваиваем n новое значение: целая часть от деления n на 10.
f(512) = 10. Проверяем: 5*1*2=10, всё верно.
Но затем, Маша поменяла 10 на 2, получается:
- пока n не равняется 0 делаем:
- умножаем s на остаток от деления n на 2,
- присваиваем n новое значение: целая часть от деления n на 2.
512 это 2^9, то есть 2*2*2*2*2*2*2*2*2, остаток от деления всегда будет 0, и даже если бы и был другой, достаточно одного, чтобы превратить s в вечный 0. Так что результатом будет 0.
Вот, на всякий случай:
Приложения:

Похожие вопросы
Предмет: Русский язык,
автор: Людмила2332
Предмет: Русский язык,
автор: rakhmatovahmad
Предмет: Английский язык,
автор: Taova
Предмет: Алгебра,
автор: OhSeh