回 帖 发 新 帖 刷新版面

主题:求N!(答对30分)

求N!(N!=1*2*3*4*……*(N-2)*(N-1)*N)
例如:输入:N=11
     输出:11!= 39916800

回复列表 (共53个回复)

41 楼

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 楼

应该对

43 楼

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 楼

对的,加分!

45 楼

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 楼

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 楼

cls
s=1
for i=1 to  n
s=s*i
next i
print s
end

48 楼

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 楼

cls
dim n as double
input n
s=1
for i=1 to n
s=s*i
next i
print s
end

50 楼


CLS
INPUT "N=";N
X# = 1
FOR I= 2 TO N
  X# = X# * I
NEXT I
PRINT N ;"!=" ; X#
END



[fly]太简单了,这是最基本的题目。[/fly]

我来回复

您尚未登录,请登录后再回复。点此登录或注册