计算机程序阶乘怎么写,N的阶乘的程序怎么写啊?VB啊
匿名用戶
1級
2013-11-15 回答
下面是能顯示很多位有效數字的程序:
'窗體上放兩個TextBox控件:Text1用于顯示結果,Text2用于輸入階乘數
'放兩個CommandBox控件:Command1.Name="開始",Command2.Name="結束"
'放兩個Label控件:Label1.Caption="階乘數",Label2用于顯示精確位數
Option Explicit
Dim Ws As Long '存放階乘數字
Dim JiaGuo() As Long '保存各位上的數字
Dim T As Long '只用于進位處理,因為它的使用次數太多,故在此聲明
Dim Temp As Long '只用于進位處理,因為它的使用次數太多,故在此聲明
Dim lonTemp As Long '用于標識位置
Dim WeiShu As Long '用于標識位置
Private Sub Command1_Click()'開始
On Error GoTo biao
Dim i As Long '臨時循環變量
Ws = Int(Val(Text2.Text)) '等到階乘數
ReDim JiaGuo(Len(Ws) * Ws) '重新定義數組
For i = 1 To Len(Ws) * Ws 'Len(ws)是Ws的位數
JiaGuo(i) = 0 '清零
Next i
JiaGuo(1) = 1 '初值
lonTemp = 1 '開始時只一位
For i = 1 To Ws '計算到We的階乘
For WeiShu = lonTemp To 1 Step -1 '從最高位開始獨位計算
JiaGuo(WeiShu) = JiaGuo(WeiShu) * i
Next WeiShu
T = 1
JingweiChuli '調用進位處理
Next i
Text1.Text = CStr(Ws) & "!="
For i = lonTemp To 1 Step -1 '從最高位開始
Text1.Text = Text1.Text & (JiaGuo(i)) '顯示結果
Next i
Label2.Caption = "精確位數" & Len(Text1.Text) - Len(Text2.Text) - 2
Text2.Text = ""
Text2.SetFocus
Command1.Enabled = False
Exit Sub
biao:
Text1.Text = CStr(Ws) & "!="
For i = lonTemp To 1 Step -1 '從最高位開始
Text1.Text = Text1.Text & (JiaGuo(i)) '顯示結果
Next i
Label2.Caption = "精確位數" & Len(Text1.Text) - Len(Text2.Text) - 2
Command1.Enabled = False
MsgBox "出錯啦!"
End Sub
Sub JingweiChuli() '進位處理
Temp = JiaGuo(T) \ 10 '整數除法
JiaGuo(T) = JiaGuo(T) - 10 * Temp
JiaGuo(T + 1) = JiaGuo(T + 1) + Temp
If T <= lonTemp Then
T = T + 1
JingweiChuli '遞歸調用
Else
If JiaGuo(lonTemp + 1) = 0 Then '根據最高位調整循環次數
Exit Sub
Else
lonTemp = lonTemp + 1
JingweiChuli
End If
End If
End Sub
Private Sub Command2_Click()'結束
End
End Sub
總結
以上是生活随笔為你收集整理的计算机程序阶乘怎么写,N的阶乘的程序怎么写啊?VB啊的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 时间片轮转调度算法
- 下一篇: Diango博客--14.使用 Djan