Lc_KiT : 個人主頁 - 相簿 - 訂閱  [ QOOZA - 論壇 - 登入 ]
406 - Not Acceptable
 
2011 年 7 月 23 日  星期六 2011-07-23 11:54 AM


{速度極限挑戰} 階乘 - factorial

除左呢個方法, 諗唔到點樣計最快/_\
Public Class Form1
    Private Sub IntegerTest_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        If Int(TextBox1.Text) > UShort.MaxValue Then
            MsgBox("數字會不會太大了?? X<", 48, "Error")
            Return
        End If

        Dim fact As UShort = CUShort(TextBox1.Text)
        Dim ans As New List(Of ULong) From {1}
        Label1.Text = "運算中..."
        Me.Cursor = Cursors.WaitCursor
        Application.DoEvents() 'Display

        Dim nw As Date = Now

        'Start Calculating
        For i As UShort = 2 To fact
            For j As Long = ans.Count - 1 To 0 Step -1
                Dim nwans As ULong = ans(j) * i
                If nwans > 99999999999999 Then
                    If j < ans.Count - 1 Then
                        ans(j + 1) += (Int(nwans / 100000000000000))
                    Else
                        ans.Add(Int(nwans / 100000000000000))
                    End If
                    ans(j) = Strings.Right(nwans, 14)
                Else
                    ans(j) = nwans
                End If
            Next
        Next

        Dim fnans As String = ""
        For Each a As ULong In ans
            fnans = a.ToString("00000000000000") & fnans
        Next

        TextBox2.Text = fnans

        Label1.Text = "Time Used: " & (Now - nw).ToString()
        Me.Cursor = Cursors.Default
    End Sub
End Class


★Kit↘..

 [ 訪客留言(1) ] [ 編輯日誌 ] [ 分享至FACEBOOK ]  
MySelf
暱稱: Tikwal
性別: 男
國家: 香港
地區: 元朗區
++水晶音樂盒++
Mariage D'Amour
最近訪客
最近沒有訪客
訪客留言
最近三個月尚無任何留言
最新文章
贏到請飲野 lol
[VB.Net] 中國象棋
[.Net] Classes / Imp...
[轉][API]4個keybd 模...
[VB2010]常玩的, 接水...
文章分類
全部 (32)
API (5)
雜談 (2)
DataBase (2)
M$ (9)
php (1)
VB.Net (5)
純粹搞笑 (4)
網頁 (5)
未分類 (1)
日誌統計
文章總數: 32
留言總數: 28
今日人氣: 7
累積人氣: 1847