2011年11月7日 星期一

98正式 Problem2:求餘數

Problem2:求餘數(13%)
求餘數對於會寫程式的人來說,是個簡單的問題,例如用VB 來求餘數時,可以用mod
這個關鍵字來實作。但如果算式為R = B^P mod M 的型態,給B、P、及M,要算出餘數R,
當B 或P 很大時,那就變得不簡單了。現在,請你設計一個程式,來解決上述這個不簡單的
問題。
輸入說明:
第一行的數字,表示有幾個問題要求解,第二行開始的每一行,為一個獨立的問題。每
一行包含三個數字,分別為B、P、及M,例如:10 2009 9 代表B=10、P=2009、M=9。所
有數字均為正整數,其範圍屬於[1, 100000]。
輸出說明:
對輸入的每個問題分別以一行輸出餘數R。
輸入範例:
2
10 2009 9
2 99 5
輸出範例:
1
3

2 則留言:

  1. Private Sub Form_Load()
    Me.Hide
    Open App.Path & "\in.txt" For Input As #1
    Open App.Path & "\out.txt" For Output As #2

    Dim B, P, M, Ans
    Input #1, ti
    For i = 1 To ti
    Input #1, B, P, M
    k = B Mod M
    Ans = k
    For j = 1 To P - 1
    Ans = (Ans * k) Mod M
    Next

    Print #2, Ans
    Next

    Close
    Close
    End
    End Sub

    回覆刪除
  2. Private Sub Form_Load()
    Me.Hide
    Open App.Path & "\in.txt" For Input As #1
    Open App.Path & "\out.txt" For Output As #2
    Input #1, n

    For ii = 1 To n
    Input #1, B, P, M
    A = B Mod M
    Ans = A

    For i = 2 To P
    Ans = (Ans * A) Mod M
    Next i

    Print #2, Ans
    Next ii
    Close #2
    Close #1
    End
    End Sub

    回覆刪除