
16.12.2007, 17:08
|
|
Участник форума
Регистрация: 04.05.2007
Сообщений: 267
С нами:
10011945
Репутация:
33
|
|
Всё, задача работоспособна....
Спасибо: Xerg, Sn@k3, .Slip
Вот собственно готовая задача
, считает 1!+2!+3!+..+n!
Код:
program Snak3;
uses crt;
var ss,s:string;
n,i,k:longint;
procedure um(a,b:string;var c:string);
var n,k,i,j,x,p:integer;
d:string;
begin
n:=length(s);
k:=length(b);
c:=''; d:=''; p:=0;
for i:=1 to n+k do d:=d+'0';
for j:=k downto 1 do
begin
p:=0;
for i:=n downto 1 do begin
x:=(ord(a[i])-ord('0'))*(ord(b[j])-ord('0'))+p+ord(d[i+j])-ord('0');
d[i+j]:=chr((x mod 10)+ord('0'));
p:=x div 10;
end;
d[j]:=chr(ord(d[j])+p);
end;
i:=1;
n:=length(d);
while (d[i]='0') and (i<n) do inc(i);
for k:=i to n do c:=c+d[k];
end;
procedure sum(a,b:string;var c:string);
var x,i,p,n,k:integer;
begin
n:=length(a);
k:=length(b);
p:=0;
c:='';
if n<k then begin
for i:=n+1 to k do
a:='0'+a;
end else
begin
for i:=k+1 to n do
b:='0'+b; end;
n:=length(a);
for i:=n downto 1 do
begin
x:=ord(a[i])-ord('0')+ord(b[i])-ord('0')+p;
c:=chr((x mod 10)+ord('0'))+c;
p:=x div 10;
end;
if p<>0 then
begin
inc(n);
c:='1'+c;
end;
end;
function IntToStr(a: Integer): string;
var s: string;
begin
Str(a, s);
IntToStr := s;
end;
begin
write('Enter n');
readln(n);
ss:='';
for i:=1 to n do begin
s:='1';
for k:=1 to i do um(s,IntToStr(k),s);
sum(ss,s,ss);
end;
writeln('1!+2!+3!+..+n!=',ss);
read(n);
end.
Последний раз редактировалось rubik-nerubik; 16.12.2007 в 17:55..
|
|
|