pascal小白 ,求大神们解。。。作业要来不及了
pascal吧
全部回复
仅看楼主
level 1
题目描述
输入正整数n,求 S = 1 + 1*2 + 1*2*3 + … + 1*2*3*…*n 的值
输入
只有一行且只有一个正整数:n
( 1 <= n <= 15 )
输出
只有一行且只有一个正整数:S
样例输入3样例输出9
[惊哭]跪谢
2016年07月28日 06点07分 1
level 9
这不是阶乘和吗
2016年07月28日 06点07分 2
level 3
前面几个数比较简单,但到后面数越来越大,所以我建议用定义类型用int64,这样就不会超界了。不过仅是针对这道题。如果n的取值范围再大一点,你就得用高精度计算了。
下面是程序:
ar n:1..15;s,a:int64;i,j:integer;
begin
readln(n);
for i:=1 to n do
begin
a:=1;
for j:=1 to i do
a:=a*j;
s:=s+a;
end;
write(s);
end.
希望对你有用!
2016年07月29日 04点07分 3
[呵呵]
2016年07月29日 05点07分
跟你一样,不过应该有qword,因为int64没有负数,而qword有负数[酷]
2016年08月10日 07点08分
@我叫大傻子year 可是n的范围在1~15之间,所以不会有负数。而且int64是有负数范围的
2016年08月14日 00点08分
level 5
var i,n,s2:longint; function jc(x:longint):longint; var i:longint; begin jc:=1; for i:=1 to x do jc:=jc*i; end; begin s2:=0; readln(n); for i:=1 to n do s2:=jc(i)+s2; writeln(s2); end.
2016年08月05日 01点08分 4
level 5
我是这么做的
2016年08月05日 01点08分 5
1