回 帖 发 新 帖 刷新版面

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

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

回复列表 (共53个回复)

31 楼

你骗人,我看没一个人得30分.

32 楼

同上楼意见!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

33 楼

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 楼

cls
let x=1
input "n=";n
for y=1 to n
let x=x*y
next y
print x
end

35 楼

a=1
i=1
input n
do
a=a*i
i=i+1
loop until i>n
print "n!=";a
end


经运行,可用!30分,我要了.

36 楼

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 楼

[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 楼

CLS
INPUT N
S# = 1
FOR I = 1 TO N
  S# = S# * I
NEXT I
PRINT S#
END

39 楼

如果用高精度计算做,需要用到字符串的,如下程序:
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 楼

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



我来回复

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