2011年6月24日 星期五

任意數進位

輸入說明:

輸入可能有無限多行
輸入 a,b 兩數, 請輸出 b的a進位。 (1 ≦ a ≦ 36)

輸入範例:
2 81
3 52
5 97
6 100
8 64
9 85
15 69
16 168
32 648
36 1000

輸出範例:
1010001
1221
342
244
100
104
49
A8
K8
RS

3 則留言:

  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
    Do While Not EOF(1)
    Input #1, m
    Input #1, n
    If n > 0 And m > 0 Then Print #2, Anyturn((m), n)
    Loop
    Close
    Close
    End
    End Sub

    Function Anyturn(b, ByVal a)
    Dim ans, s
    s = Split("0 1 2 3 4 5 6 7 8 9 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z")
    Do
    x = a Mod b
    ans = s(x) & ans
    a = a \ b
    Loop Until a = 0
    Anyturn = ans
    End Function

    回覆刪除
  2. 規則都一樣,
    只是符號的增加:D



    Private Sub Form_Load()
    Me.Hide
    Open App.Path & "\in.txt" For Input As #1
    Open App.Path & "\out.txt" For Output As #2
    Do While Not EOF(1)
    Input #1, A, B
    Print #2, ten_to_any(A, B)
    Loop
    Close #2
    Close #1
    End
    End Sub

    Function ten_to_any(A, B)
    Dim ans As String, C() As String
    ans = ""
    C = Split("0 1 2 3 4 5 6 7 8 9 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z")
    Do
    x = B Mod A
    ans = C(x) & ans
    B = B \ A
    Loop Until B = 0
    ten_to_any = ans
    End Function

    回覆刪除
  3. arro、佑好,
    程式正確。
    而且,這邊練習一下之後,以後計概那邊也會了吧。

    回覆刪除