free pascal求1!+2!+...+N!求高手相助!!!!!!!!!!!!!!!

[复制链接]
查看11 | 回复3 | 2010-4-25 12:05:58 | 显示全部楼层 |阅读模式
var n,i,j,temp,total:longint;begintemp:=1;total:=1;//赋初值readln(n);//读入 for i:=2 to n do begin
temp:=temp*i;total:=total+temp;//temp表示i!,total表示1!+2!+3!+......+i!end;writeln(total);end.
回复

使用道具 举报

千问 | 2010-4-25 12:05:58 | 显示全部楼层
如果不要高精度的话,看下面一段程序varn,s,i,j,k:longint;begins:=0;for n:=1 to 10 dobegin
j:=1;
for i:=1 to n do
k:=k*j;
s:=s+k;end;writeln(s);end. 楼下的,用longint运行速度更快吗
回复

使用道具 举报

千问 | 2010-4-25 12:05:58 | 显示全部楼层
范围是10 不大用longint即可program jch;varans:longint;i,n:integer;function jc(n:integer):longint;//求某个数(>1)的阶乘vari:integer;beginjc:=1;for i:=1 to n dojc:=jc*i;end;beginreadln(n);ans:=0;for i:=1 to n do//逐次累加阶乘求和ans:=ans+jc(i);writeln(ans);输出结果end.容易看懂 可以打函数但浪费些时间
回复

使用道具 举报

千问 | 2010-4-25 12:05:58 | 显示全部楼层
var n,i,j:integer;a,s:real;beginreadln(n);a:=1;s:=0;for i:=1 to n do
for j:=1 to i do
begin
a:=a*j;
s:=s+a;
end;end.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行