17.正整數(shù)n的階乘,在數(shù)學(xué)中定義為:n!=1×2×3×…×n,如:3!=1×2×3,現(xiàn)在輸入一個(gè)正整數(shù)n(n<=30),計(jì)算出1~n中的每一個(gè)整數(shù)的階乘的精確結(jié)果.小北按照上述要求,設(shè)計(jì)一個(gè)求前n個(gè)正整數(shù)的階乘問(wèn)題的VB程序,功能如下:在程序中他采用加法代替乘法的方法來(lái)計(jì)算階乘,如:3!=2!×3=2!+2!+2!.程序啟動(dòng)后在文本框Text1中輸入n的值,單擊“計(jì)算”按鈕Command1,在列表框List1中輸出前n個(gè)數(shù)的階乘.當(dāng)n=10時(shí),程序運(yùn)行效果如圖所示:
實(shí)現(xiàn)上述功能的VB程序如下請(qǐng)?jiān)跈M線(xiàn)處填入合適的代碼.
Const maxn=80
Dim i As Integer,j As Integer,k As Integer,n As Interger,r As Interger
Dim a(1 To maxn)As Integer,b(1 To maxn)As Integer,s As String
Private Sub Form_Load( ?。?br /> List1.Clear
For i=1 To maxn
a(i)=0
Next i
End Sub
Sub array_sum(j As Integer)'該過(guò)程用于計(jì)算 j!,并將j!的精確值按位保存在數(shù)組a中
For k=1 To j-1
For i=1 To maxn
r=
If r>=10 Then
=a(i+1)+1
a(i)=r Mod 10
Next i
Next k
End Sub
Private Sub Command1_Click( ?。?br /> n=Val(Text1.Text)
a(1)=1
List1.AddItem“1!=“&Str(a(1))
For j=2 To n
For i=1 To maxn
b(i)=a(i)
Next i
s=““
Call array_sum(j)'該語(yǔ)句用于調(diào)用自定義過(guò)程 array_sum
s=s+Str(j)+“!=“
k=maxn
Do While a(k)=0
Loop
For i=k To 1 step-1
s=s+Str(a(i))
Next i
List1.AddItem s
Next j
End Sub.