Найти Факториал числа n - Free Pascal
Формулировка задачи:
Задание только кажется простым: "
Найти Факториал числа
n!
Число
n!
вводится с клавиатуры и не превышает2000!"
Это уже длинная арифметика, в которой я ни черта не понимаю! Сколько намучался, а результат - "Неверный ответ"! Решение задачи: «Найти Факториал числа n»
textual
Листинг программы
var a:array[1..1500] of integer; i,j,fl,n:integer; procedure wr(var i:integer); begin if a[i]<10000 then write(0); if a[i]<1000 then write(0); if a[i]<100 then write(0); if a[i]<10 then write(0); write(a[i]); end; begin write('N= '); read(n); a[1]:=1; for i:=2 to n do begin for j:=1 to 1499 do a[j]:=a[j]*i; for j:=1 to 1499 do if a[j]>999999 then begin a[j+1]:=a[j+1]+a[j] div 1000000; a[j]:=a[j] mod 1000000; end; end; fl:=1; for i:=1500 downto 1 do begin if fl=0 then wr(i); if (a[i]>0) and (fl=1) then begin fl:=0; write(a[i]); end; end; readln end.
Объяснение кода листинга программы
Список элементов:
- a: массив для хранения чисел
- i, j: переменные для циклов
- fl: флаг для проверки наличия чисел больше 999999
- n: число, вводимое пользователем
- a[1]: инициализация первого элемента массива единицей
- Цикл от 2 до n для заполнения массива a числами от 2 до n
- Цикл от 1 до 1499 для обработки каждого элемента массива
- Если элемент больше 999999, то добавляем его в следующий элемент массива и обновляем значение текущего элемента
- Цикл от 1500 до 1 для вывода чисел на экран
- Если флаг fl равен 0, то выводим число
- Если число больше 0 и флаг fl равен 1, то обновляем значение флага и выводим число
- Запрос на ввод с клавиатуры для завершения программы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д