Решения задач acmp.ru
Главная
Вход
Регистрация
Четверг, 01.10.2020, 05:13Приветствую Вас Гость | RSS
Меню сайта

Категории раздела
Pascal [121]
C++ [76]

Поиск

Мини-чат
200

Легкий заработок!

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Форма входа

Главная » Файлы » Pascal

0018 Факториал

Скачать файл можно после просмотра рекламы:

05.06.2012, 03:32
function factor(N:word):string;
Const Size = 322;
Var i, j : Integer;
       ch : String [8];
       F : array [1..Size] of Int64;
       st,m:string;
Begin
 F [Size] := 1;
 for i := 1 to Size - 1 do  F [i] := 0;
 while (N > 1)  do
 begin
   for i := 2 to Size do
   begin
     F [i] := F [i] * N;
     if (F [i] > 99999999)  then
     for j := Size downto 2 do
     begin
       if (F [j] > 99999999)  then
       begin
        Inc (F [j - 1], F [j] div 100000000);
        F [j] := F [j] mod 100000000;
       end;
      end;
    end;
    Dec (N); 
 end;
 i := 2;
st:='';
 while (F [i] = 0) do Inc (i);
 str(F [i],m);
 st:=st+m;
 Inc (i);
 for N := i to Size do
 begin
   str(F [N],ch);
  for j := 1 to 8 - Length (ch) do  st:=st+'0';
   str(F [N],m);
 st:=st+m;
 end;
 factor:=st;
End;

var K:word;

begin
  Assign (Input, 'input.txt');Reset (Input); 
 Assign (Output, 'output.txt');ReWrite (Output);
 Readln(K);
 Writeln(factor(K));
end.

Категория: Pascal | Добавил: shum
Просмотров: 3437 | Загрузок: 0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Это интересно!


Copyright MyCorp © 2020