N 階乘數
請寫一個程式求出 n! 的結果數值中,從右邊算來第一個不是0的數字(0 n 10000)。
例如:
3!=6 所以輸出 6。
5!=120 所以輸出 2。
10!=3628800 所以輸出 8。
輸入規範
輸入檔案中包含好幾筆資料,每筆資料一行,包含一個整數n(0 n 10000)。如果輸入的n=0,代表輸入結束。
輸出規範
對每行輸入,輸出N! 從右邊算來最後一個不是0的數字。

Private Sub Command1_Click()
   Dim ans As Currency
   Open "C:test3.txt" For Input As #1
      Do Until EOF(1)
         Input #1, N
         ans = 1
         For i = 1 To N
            ans = ans * i
            '去除 0 尾數
            If Right$(ans, 1) = "0" Then
               Do
                  ans = Left(ans, Len(CStr(ans)) - 1)
               Loop Until Right$(ans, 1)
            End If
            ans = Right(ans, 10)    '將乘積取後10位數
            If (i = N) Then
               'Print i, Right(ans, 1)
               Open "C:result3.txt" For Append As #2
                  Print #2, Right(ans, 1)
               Close #2
            End If
         Next
      Loop
   Close #1
End Sub

題目來源:知識+ http://tw.knowledge.yahoo.com/question/question?qid=1106112209248
arrow
arrow
    全站熱搜

    chph 發表在 痞客邦 留言(0) 人氣()