主题:求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个回复)
41 楼
QB小猪 [专家分:1200] 发布于 2007-12-06 17:01: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
42 楼
QB小猪 [专家分:1200] 发布于 2007-12-06 17:07:00
应该对
43 楼
网虫一号 [专家分:1230] 发布于 2007-12-06 17:31:00
CLS
INPUT N: B$ = "1"
DIM A(1000), B(1001), C(1009)
B = LEN(B$): LC = LA + LB
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 = LC TO 1 STEP -1: C(I) = 0: NEXT I
NEXT K
PRINT STR$(N) + "!=" + B$
END
44 楼
网虫一号 [专家分:1230] 发布于 2008-01-11 18:49:00
对的,加分!
45 楼
hqm1 [专家分:570] 发布于 2008-04-04 22:26:00
CLS
INPUT N
B$ = "1"
DIM A(256), B(256), C(256)
FOR K = 1 TO N
A$ = LTRIM$(STR$(K))
A = LEN(A$): B = LEN(B$): C = A + B
FOR I = 1 TO A: A(I) = VAL(MID$(A$, A + 1 - I, 1)): NEXT I
FOR I = 1 TO B: B(I) = VAL(MID$(B$, B + 1 - I, 1)): NEXT I
B$ = ""
FOR I = 1 TO A: FOR J = 1 TO B
X = A(I) * B(J): W = I + J - 1
C(W) = C(W) + X MOD 10
C(W + 1) = C(W + 1) + X \ 10 + C(W) \ 10
C(W) = C(W) MOD 10
NEXT J, I
WHILE C(C) = 0 AND C > 1: C = C - 1: WEND
FOR I = C TO 1 STEP -1: B$ = B$ + LTRIM$(STR$(C(I))): C(I) = 0: NEXT I
NEXT K
PRINT LTRIM$(STR$(N)) + "!=" + B$
END
46 楼
世界第一 [专家分:210] 发布于 2008-04-22 12:00:00
CLS
y = 1000
DIM a(y)
a(1) = 1
INPUT "n="; n
FOR i = 1 TO n
c = 0
FOR j = 1 TO y
x = i * a(j) + c: c = x \ 10: a(j) = x MOD 10
NEXT j
k = y
WHILE a(k) = 0: k = k - 1: WEND
NEXT i
PRINT i - 1; "!=";
FOR j = k TO 1 STEP -1
PRINT USING "#"; a(j);
NEXT j
END
47 楼
铁大比鸟山 [专家分:0] 发布于 2008-05-18 17:45:00
cls
s=1
for i=1 to n
s=s*i
next i
print s
end
48 楼
天天和和 [专家分:1420] 发布于 2008-10-24 17:55:00
CLS
DIM a(100)
a(1) = 1
INPUT n
FOR i = 1 TO n:c = 0
FOR j = 1 TO 100
x = i * a(j) + c
c = x \ 10
a(j) = x MOD 10
NEXT j:k = 100
WHILE a(k) = 0:k = k - 1:WEND
FOR j = k TO 1 STEP -1:PRINT USING "#"; a(j);:NEXT j
PRINT:NEXT i
END
49 楼
xuehua2008 [专家分:20] 发布于 2008-10-24 18:18:00
cls
dim n as double
input n
s=1
for i=1 to n
s=s*i
next i
print s
end
50 楼
神倪在世 [专家分:30] 发布于 2008-10-27 21:08:00
CLS
INPUT "N=";N
X# = 1
FOR I= 2 TO N
X# = X# * I
NEXT I
PRINT N ;"!=" ; X#
END
[fly]太简单了,这是最基本的题目。[/fly]
我来回复