Для заданного числа N определите, сколько нулей в конце десятичной записи - Turbo Pascal
Формулировка задачи:
Помогите СРОЧНО с решением задачи. Вот ее условие:
N-Factorial - это произведение всех чисел от 1 до N. Для заданного числа N определите, сколько нулей в конце десятичной записи N-Factorial.
Пример:
A.in A.out Комментарий
4 0 1*2*3*4=24
6 1 1*2*3*4*5*6=720
10 2 1*2*3*4*5*6*7*8*9*10=3628800
Спасибо за помощь, я уже решил сам
Решение задачи: «Для заданного числа N определите, сколько нулей в конце десятичной записи»
textual
Листинг программы
var n,k2,k5,i,a:integer; begin write('n='); read(n); k2:=0; k5:=0; for i:=2 to n do begin a:=i; if a mod 2=0 then while a>=2 do begin a:=a div 2; k2:=k2+1; end; a:=i; if a mod 5=0 then while a>=5 do begin a:=a div 5; k5:=k5+1; end; end; if k2<k5 then write(k2) else write(k5); readln end.
Объяснение кода листинга программы
- Создается переменная
n
, в которую считывается заданное число N. - Создаются две переменные
k2
иk5
, которые будут использоваться для подсчета количества двоек и пятерок в конце десятичной записи числа N соответственно. - Запускается цикл
for
, который будет выполняться от 2 до N включительно. - Внутри цикла создается переменная
a
, которая будет использоваться для хранения текущего числа, которое нужно проверить на наличие двоек и пятерок. - Внутри цикла проверяется, является ли текущее число четным (остаток от деления на 2 равен нулю). Если да, то запускается вложенный цикл
while
, который будет выполняться до тех пор, пока число не станет равным 2. - Внутри вложенного цикла переменная
a
делит текущее число на 2, а переменнаяk2
увеличивается на 1. - После завершения вложенного цикла
while
переменнаяa
сбрасывается обратно на текущее число. - Затем проверяется, является ли текущее число кратным 5 (остаток от деления на 5 равен нулю). Если да, то запускается вложенный цикл
while
, который будет выполняться до тех пор, пока число не станет равным 5. - Внутри вложенного цикла переменная
a
делится на 5, а переменнаяk5
увеличивается на 1. - После завершения вложенного цикла
while
переменнаяa
сбрасывается обратно на текущее число. - По завершении внешнего цикла проверяется, какое из значений
k2
иk5
меньше. - Если
k2
меньшеk5
, то выводится значениеk2
, иначе выводится значениеk5
. - Выводится символ новой строки (
readln
), чтобы перейти на следующую строку вывода. - Код завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д