主题:高精度阶乘问题,自己解决了高精度乘法,虽然有点乱,能否提示下,如何变成阶乘?有原代码
高精度阶乘问题,自己解决了高精度乘法,虽然有点乱,能否提示下,如何变成阶乘?
CLS
DIM a(250), b(250), a1(250), b1(250), c(250), c1(250)
INPUT a$
INPUT b$
FOR i = 1 TO LEN(a$)
a(i) = VAL(MID$(a$, i, 1))
a1(LEN(a$) + 1 - i) = a(i)
NEXT i
FOR j = 1 TO LEN(b$)
b(j) = VAL(MID$(b$, j, 1))
b1(LEN(b$) + 1 - j) = b(j)
NEXT j
k1 = LEN(a$): k2 = LEN(b$)
FOR j = 1 TO k2
y = 0
FOR i = 1 TO k1
x = a1(i) * b1(j) + y
c(i) = x MOD 10
y = x \ 10
NEXT i
IF y > 0 THEN
c(i) = y
k1 = k1 + 1
END IF
f = f + 1
jw = 0
FOR w = 1 TO k1
u = (c1(f + w - 1) + c(w))
c1(f + w - 1) = (u + jw) MOD 10
jw = (u + jw) \ 10
NEXT w
IF jw > 0 THEN
c1(f + w - 1) = jw
END IF
NEXT j
FOR t = f + w - 2 TO 1 STEP -1
PRINT c1(t);
NEXT t
CLS
DIM a(250), b(250), a1(250), b1(250), c(250), c1(250)
INPUT a$
INPUT b$
FOR i = 1 TO LEN(a$)
a(i) = VAL(MID$(a$, i, 1))
a1(LEN(a$) + 1 - i) = a(i)
NEXT i
FOR j = 1 TO LEN(b$)
b(j) = VAL(MID$(b$, j, 1))
b1(LEN(b$) + 1 - j) = b(j)
NEXT j
k1 = LEN(a$): k2 = LEN(b$)
FOR j = 1 TO k2
y = 0
FOR i = 1 TO k1
x = a1(i) * b1(j) + y
c(i) = x MOD 10
y = x \ 10
NEXT i
IF y > 0 THEN
c(i) = y
k1 = k1 + 1
END IF
f = f + 1
jw = 0
FOR w = 1 TO k1
u = (c1(f + w - 1) + c(w))
c1(f + w - 1) = (u + jw) MOD 10
jw = (u + jw) \ 10
NEXT w
IF jw > 0 THEN
c1(f + w - 1) = jw
END IF
NEXT j
FOR t = f + w - 2 TO 1 STEP -1
PRINT c1(t);
NEXT t