我说过方法了,其实:很简单,用一个数组,存储每一位,然后累加,例如dim a(10) as integer
dim b(10) as integera(0)=1
a(1)=2
a(2)=3
a(3)=4
b(0)=4
b(1)=3
b(2)=2
b(3)=1a表示1234
b表示4321a+b=c那么
c(0)=5
c(1)=5
c(2)=5
c(3)=5
dim b(10) as integera(0)=1
a(1)=2
a(2)=3
a(3)=4
b(0)=4
b(1)=3
b(2)=2
b(3)=1a表示1234
b表示4321a+b=c那么
c(0)=5
c(1)=5
c(2)=5
c(3)=5
解决方案 »
- 100 分请教一个读数据问题___
- 关于Excel中宏的问题
- 这么会有这种怪事???有关dbcombo的
- 散分------最近在装修房子,准备结婚,来的少了,很多问题答复比较慢,望各位见凉!!!!!
- 我用Winsock控件编了一个小的通信程序,在VB开发环境下能运行,但为什么生成.EXE文件就不能运行呢?
- 我是初学者,遇到困难了,急!!!
- 在用API进行串口编程时,如何判断缓冲区有数据需要接收?
- 在VB中怎样把Excel文件输入并转换成Access文件?(请教高手!)
- ### hnlzh(吸海垂虹) 来拿分 VI ###
- 如何将BMP图片设为墙纸
- 一个可以或不可以的问题
- 如何判断treeview中的节点是根节点还是子节点?帮帮忙,告诉我啊,很急,在线等
On Error GoTo myErr:
Dim intA() As Integer, intT() As Integer, i As Integer
Dim j As Integer, intR As Integer
ReDim intA(20), intT(20)
If intC < 2 Then Exit Function
intR = 20
intA(0) = 1
For i = 2 To intC
For j = 0 To intR
intT(j) = intA(j) * i
Next j
j = 0
Do Until j > intR
intA(j) = intT(j) Mod 10
If intT(j) >= 10 Then intT(j + 1) = intT(j + 1) + intT(j) \ 10
j = j + 1
Loop
Next i
Do While True
j = j - 1
If intA(j) > 0 Then Exit Do
Loop
For j = j To 0 Step -1
Factorial = Factorial & intA(j)
Next j
Exit Function
myErr:
If Err.Number = 9 Then
intR = intR + 20
ReDim Preserve intA(intR)
ReDim Preserve intT(intR)
Resume
Else
MsgBox "UnKnow ERR:" & Err.Description & ":" & Err.Number, vbCritical + vbOKOnly
End If
End Function
我这几天做了一个,1000的阶乘共1986位数,用了差不多5分钟,(机器不太好)算法类似手工乘法,没用数组,全是字符串操作,发现小学乘法学的不是很好,因此断续做了好几天,不过全是上班时间,报复老板吗?有点,说实话我现在多数时间是在混,我实在讨厌老板的嘴脸,谢谢你给我出了一个有意思的题目啊!