Детёныши ВП

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Детёныши ВП » Длинная арифметика » Факториал N (N < 1000)


Факториал N (N < 1000)

Сообщений 1 страница 2 из 2

1

Код:
var
        i, j, n, i1, f : longint; t, temp : ansistring;

procedure umn(x,y : ansistring; var t : ansistring);
var
        a, b, c : array[1..10000] of int64;
        n, m, i, k, f : longint; temp : ansistring;
begin
        t := '';
        n := length(x);
        m := length(y);
        for i := n downto 1 do
                val(x[i], a[n-i+1], f);
        for i := m downto 1 do
                val(y[i], b[m-i+1], f);
        for i := 1 to m + n do
                c[i] := 0;
        for i := 1 to n do
                for j := 1 to m do
                        begin
                        c[i+j-1] := a[i] * b[j] + c[i+j-1];
                        end;
        for i := 1 to n+m-1 do
                begin
                c[i+1] := c[i+1] + c[i] div 10;
                c[i] := c[i] mod 10;
                end;
        k := n + m;
        while (k>1) and (c[k] = 0) do
                dec(k);
        for i := k downto 1 do
                begin
                str(c[i], temp);
                t := t + temp;
                   end;
end;

begin
        readln(n);
        if (n = 0) then
                writeln('1')
        else
                begin
                t := '1';
                for i := 2 to n do
                        begin
                        temp := '';
                        str(i, temp);
                        umn(t, temp, t);
                        end;
                writeln(t);
                end;
end.

Отредактировано Илья (2011-05-20 10:26:06)

0

2

ты уверен что это правильно  :question:
у меня  она не идёт   :angry:

0


Вы здесь » Детёныши ВП » Длинная арифметика » Факториал N (N < 1000)