|
Новичок
Регистрация: 18.05.2007
Сообщений: 8
Провел на форуме: 46828
Репутация:
3
|
|
вот попробуй мою прогу
program fak;
var a,fak,prob:array [1..10000] of integer;
i,m,n,m1,k,j:longint;
s,s1:string;
Procedure Mnog(x,y:array of integer);
var k,l:longint;
begin
fillchar(prob,sizeof(prob),0);
for k:=1 to m1 do
for l:=1 to m do
prob[k-1+l]:=prob[k-1+l]+fak[l]*a[k];
k:=1;
while k<=m do
begin
if ((prob[k] div 10) > 0)and(k=m) then inc(m);
prob[k+1]:=prob[k+1]+(prob[k] div 10);
s:='';
str(prob[k],S);
prob[k]:=ord(s[length(s)])-ord('0');
inc(k);
end;
fak:=prob;
end;
begin
{ TODO -oUser -cConsole Main : Insert code here }
assign(input,'input.txt'); reset(input);
assign(output,'ouptupt.txt'); rewrite(output);
readln(n);
str(n,S); k:=1;
for j:=length(s) downto 1 do
begin
fak[length(s)+1-j]:=ord(s[j])-ord('0');
end;
m:=length(s);
for i:=n-1 downto 2 do
begin
s1:='';
str(i,S1); k:=1;
for j:=length(s1) downto 1 do
begin
a[length(s1)+1-j]:=ord(s1[j])-ord('0');
end;
m1:=length(s1);
mnog(fak,a);
end;
for i:=m downto 1 do
write(fak[i]); writeln;
close(input); close(output);
end.
З.Ы. по идее то что ты и хотел считает до 1000 (мона и больше)
Последний раз редактировалось Be0wuIf; 13.12.2007 в 23:55..
|