回 帖 发 新 帖 刷新版面

主题:高精度阶乘问题,自己解决了高精度乘法,虽然有点乱,能否提示下,如何变成阶乘?有原代码

高精度阶乘问题,自己解决了高精度乘法,虽然有点乱,能否提示下,如何变成阶乘?

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

回复列表 (共1个回复)

沙发

你可以看看我写的这一张贴:  [url=http://www.programfan.com/club/showbbs.asp?id=99260]超长数运算[/url]

当然,对于你写的这个,当然也行
只是我老眼有点昏花,看得不太清楚
也没关系,我跟你说说几个事情就行了

你已经做好了长数的乘法问题,要想利用到阶乘去
把你做的程序,做成函数就行了,
不断的调用你做好的函数,就能变成一件很简单的事情了

首先,怎么把这个程序改成函数来调用呢?
函数,是要实现某个计算的目的的(在这里)
你想清楚,
拿什么来做条件(参数)?                    (两个乘数)
需要些什么样的结果(返回值)?              (积)
这些数用什么样的方式来表现(变量类型)?    (字符串? 还是数组?)

然后把计算和转换的过程放在函数体里,
你只要知道这个函数实现什么样的功能就行了.

然后不断的去改变乘数,阶乘也就顺手拿来了.

我来回复

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