Найти последнюю ненулевую цифру факториала n - Free Pascal
Формулировка задачи:
Помогите решить задачу:
Нужно найти последнюю ненулевую цифру числа n! . 1<n<1000000. Помгите пожалуйста
Решение задачи: «Найти последнюю ненулевую цифру факториала n»
textual
Листинг программы
var n : qword; i : integer; begin n := 1; for i := 1 to 250 do begin n := n * i; while n mod 10 = 0 do n := n div 10; n := n mod 1000; end; writeln(n mod 10); end.
Объяснение кода листинга программы
- Объявляются две переменные: n типа qword (16-битный целый со знаком) и i типа integer (целое без знака).
- Переменная n инициализируется единицей.
- Запускается цикл for, который выполняется от i = 1 до 250.
- Внутри цикла переменная n умножается на текущее значение i.
- С помощью цикла while проверяется, является ли n кратным десяти. Если это так, то с помощью операции div (деление) из n удаляется последняя цифра.
- С помощью операции mod (остаток от деления) из n получается последняя цифра.
- С помощью операции mod (остаток от деления) из n получается последняя цифра в диапазоне от 0 до 999.
- В конце программы выводится значение переменной n mod 10 (последняя цифра).