回 帖 发 新 帖 刷新版面

主题:求100的阶层

用最简单的方法

回复列表 (共11个回复)

沙发

CLS
DIM n AS INTEGER
DIM i AS INTEGER
DIM j AS INTEGER
DIM p AS INTEGER
DIM q AS INTEGER
DIM m AS INTEGER
DIM a(1 TO 20000) AS INTEGER
o: INPUT n
a(1) = 1: m = 1
FOR i = 1 TO n
  p = 0
  FOR j = 1 TO m
    a(j) = a(j) * i + p
    p = a(j) \ 10
    a(j) = a(j) MOD 10
  NEXT j
  DO WHILE p <> 0
    m = m + 1
    a(m) = p MOD 10
    p = p \ 10
  LOOP
NEXT i
FOR i = m TO 1 STEP -1
  PRINT LTRIM$(RTRIM$(STR$(a(i))));
NEXT i
END

忘光了

板凳

s#=1:for i=1 to 100:s#=s#*i:next:?s#

3 楼


t=1
for i=1 to 100
 t=t*i
next i
?t

4 楼


我用循环语句编的,见笑了


i=3
s=1
do 
 s=s*i
 i=i+1
loop until i>100
print s
end

5 楼

100的阶乘很大吧,直接算能表示出来吗

6 楼


s= 1
for i =1 to 100
s=s*i
next i 
print s
这个简单吧
包你正确

7 楼

1000的阶乘应该用高精度才对,看我的
CLS
B$="1"
DIM A(10000):B(10000)
FOR I=1 TO 1000
 A$=LTRIM$(STR$(I))
 LA=LEN(A$):LB=LEN(B$):LC=LA+LB
 FOR A=1 TO LA:A(A)=VAL(MID$(A$,LA+1-A,1)):NEXT A
 FOR A=1 TO LB:B(A)=VAL(MID$(A$,LB+1-A,1)):NEXT A
 B$=""
 FOR A=1 TO LA:FOR B=1 TO LB
  X=A(A)*B(B):W=A+B-1
  C(W)=C(W)+X MO 10
  C(W+1)=C(W+1)+X\10
 NEXT J,I
 WHILE C(LC)=0:LC=LC-1:WEND
 FOR A=LC TO 1 STEP -1:B$=B$+LTRIM$(STR$(B(A))):C(A)=0:NEXT A
NEXT I
? B$
END

8 楼

CLS
DIM n AS INTEGER
DIM i AS INTEGER
DIM j AS INTEGER
DIM p AS INTEGER
DIM q AS INTEGER
DIM m AS INTEGER
DIM a(1 TO 20000) AS INTEGER
o: INPUT n
a(1) = 1: m = 1
FOR i = 1 TO n
  p = 0
  FOR j = 1 TO m
    a(j) = a(j) * i + p
    p = a(j) \ 10
    a(j) = a(j) MOD 10
  NEXT j
  DO WHILE p <> 0
    m = m + 1
    a(m) = p MOD 10
    p = p \ 10
  LOOP
NEXT i
FOR i = m TO 1 STEP -1
  PRINT LTRIM$(RTRIM$(STR$(a(i))));
NEXT i
END

9 楼

CLS
B$="1"
DIM A(10000):B(10000)
FOR I=1 TO 1000
 A$=LTRIM$(STR$(I))
 LA=LEN(A$):LB=LEN(B$):LC=LA+LB
 FOR A=1 TO LA:A(A)=VAL(MID$(A$,LA+1-A,1)):NEXT A
 FOR A=1 TO LB:B(A)=VAL(MID$(A$,LB+1-A,1)):NEXT A
 B$=""
 FOR A=1 TO LA:FOR B=1 TO LB
  X=A(A)*B(B):W=A+B-1
  C(W)=C(W)+X MO 10
  C(W+1)=C(W+1)+X\10
 NEXT J,I
 WHILE C(LC)=0:LC=LC-1:WEND
 FOR A=LC TO 1 STEP -1:B$=B$+LTRIM$(STR$(B(A))):C(A)=0:NEXT A
NEXT I
? B$
END

10 楼

CLS
B$="1"
DIM A(10000):B(10000)
FOR I=1 TO 1000
 A$=LTRIM$(STR$(I))
 LA=LEN(A$):LB=LEN(B$):LC=LA+LB
 FOR A=1 TO LA:A(A)=VAL(MID$(A$,LA+1-A,1)):NEXT A
 FOR A=1 TO LB:B(A)=VAL(MID$(A$,LB+1-A,1)):NEXT A
 B$=""
 FOR A=1 TO LA:FOR B=1 TO LB
  X=A(A)*B(B):W=A+B-1
  C(W)=C(W)+X MO 10
  C(W+1)=C(W+1)+X\10
 NEXT J,I
 WHILE C(LC)=0:LC=LC-1:WEND
 FOR A=LC TO 1 STEP -1:B$=B$+LTRIM$(STR$(B(A))):C(A)=0:NEXT A
NEXT I
? B$
END

我来回复

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