主题:求N!(答对30分)
LSQ
[专家分:220] 发布于 2006-02-10 18:27:00
求N!(N!=1*2*3*4*……*(N-2)*(N-1)*N)
例如:输入:N=11
输出:11!= 39916800
回复列表 (共53个回复)
31 楼
Matodied [专家分:7560] 发布于 2007-04-19 20:30:00
你骗人,我看没一个人得30分.
32 楼
wangyunchaoPIG [专家分:130] 发布于 2007-06-03 15:11:00
同上楼意见!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
33 楼
a292982250 [专家分:40] 发布于 2007-06-13 13:14:00
INPUT "q="; q
mul = 1
FOR i = 1 TO n
mul = mul * i
NEXT i
PRINT q; CHR$(29); "! ="; mul 'chr$(29) is backspace
END
34 楼
tz_xinzhe [专家分:200] 发布于 2007-07-16 22:17:00
cls
let x=1
input "n=";n
for y=1 to n
let x=x*y
next y
print x
end
35 楼
yaoyusheng [专家分:460] 发布于 2007-07-19 18:56:00
a=1
i=1
input n
do
a=a*i
i=i+1
loop until i>n
print "n!=";a
end
经运行,可用!30分,我要了.
36 楼
小精灵1号 [专家分:1040] 发布于 2007-08-17 10:51:00
CLS
INPUT N: B$ = "1"
DIM A(1000), B(1000), C(1000)
FOR K = 1 TO N
A$ = LTRIM$(STR$(M))
S = S + 1: LA = LEN(A$): LB = LEN(B$): LC = LA + LB
FOR I = 1 TO LA: A(I) = VAL(MID$(A$, LA + 1 - I, 1)): NEXT I
FOR I = 1 TO LB: B(I) = VAL(MID$(B$, LB + 1 - I, 1)): NEXT I: B$ = ""
FOR I = 1 TO LA: FOR J = 1 TO LB
X = K * B(J): W = I + J - 1
C(W) = C(W) + X MOD 10
C(W + 1) = C(W + 1) + C(W) \ 10 + X \ 10
C(W) = C(W) MOD 10
NEXT J, I
WHILE C(LC) = 0 AND LC > 1: LC = LC - 1: WEND
FOR I = LC TO 1 STEP -1: B$ = B$ + LTRIM$(STR$(C(I))): NEXT I
FOR I = 1 TO LC: C(I) = 0: NEXT I
NEXT K: PRINT LTRIM$(STR$(N)) + "!=" + B$
END
37 楼
Mr.Cao [专家分:130] 发布于 2007-10-11 20:00:00
[color=800080][size=5]cls
input a
x=1
for i=1 to a
x=x*i
next i
print x[/size][/color]
end
38 楼
傲视人间 [专家分:60] 发布于 2007-11-25 11:51:00
CLS
INPUT N
S# = 1
FOR I = 1 TO N
S# = S# * I
NEXT I
PRINT S#
END
39 楼
lu1012 [专家分:20] 发布于 2007-12-01 15:58:00
如果用高精度计算做,需要用到字符串的,如下程序:
CLS
INPUT N: B$ = "1"
DIM A(1000), B(1000), C(1000)
FOR K = 1 TO N
A$ = LTRIM$(STR$(M))
S = S + 1: LA = LEN(A$): LB = LEN(B$): LC = LA + LB
FOR I = 1 TO LA: A(I) = VAL(MID$(A$, LA + 1 - I, 1)): NEXT I
FOR I = 1 TO LB: B(I) = VAL(MID$(B$, LB + 1 - I, 1)): NEXT I: B$ = ""
FOR I = 1 TO LA: FOR J = 1 TO LB
X = K * B(J): W = I + J - 1
C(W) = C(W) + X MOD 10
C(W + 1) = C(W + 1) + C(W) \ 10 + X \ 10
C(W) = C(W) MOD 10
NEXT J, I
WHILE C(LC) = 0 AND LC > 1: LC = LC - 1: WEND
FOR I = LC TO 1 STEP -1: B$ = B$ + LTRIM$(STR$(C(I))): NEXT I
FOR I = 1 TO LC: C(I) = 0: NEXT I
NEXT K: PRINT LTRIM$(STR$(N)) + "!=" + B$
END
如果不用高精度,则无法算很大的数的阶乘,如下程序:
CLS
INPUT N
S = 1
FOR I = 1 TO N
S = S * I
NEXT I
PRINT S
END
40 楼
QB小猪 [专家分:1200] 发布于 2007-12-06 16:59:00
CLS
INPUT N
DIM A(10000), B(10000), C(10000)
B$ = "1"
FOR Z = 1 TO N
A$ = LTRIM$(STR$(Z))
LA = LEN(A$): LB = LEN(B$): LC = LA + LB
FOR I = 1 TO LA: A(I) = VAL(MID$(A$, LA + 1 - I, 1)): NEXT I
FOR I = 1 TO LB: B(I) = VAL(MID$(B$, LB + 1 - I, 1)): NEXT I:B$ = ""
FOR I = 1 TO LA: FOR J = 1 TO LB
X = A(I) * B(J): W = I + J - 1
C(W) = C(W) + X MOD 10
C(W + 1) = C(W + 1) + C(W) \ 10 + X \ 10
C(W) = C(W) MOD 10
NEXT J, I
WHILE C(LC) = 0 AND LC > 1: LC = LC - 1: WEND
FOR I = LC TO 1 STEP -1: B$ = B$ + LTRIM$(STR$(C(I))): NEXT I
FOR I = 1 TO LC: C(I) = 0: NEXT I
NEXT Z
PRINT STR$(N); "!"; "="; B$
END
我来回复