2010年10月8日 星期五

數列最小值

內容
輸入一數列(X1,X2,...,Xn),找到整數A(有可能有多個解),使得( |X1-A| + |X2-A| + ... + |Xn-A| ) 為最小值。
輸入說明
每一組測試資料以一個數n(0<=1000000)開始,n代表數列中的數的個數。 接下來為這n個數,這些數都大於等於0
輸出說明
輸出A所有可能的值。
範例輸入 help
2
10
10
4
2
2
3
4
範例輸出
A=10
A=23

3 則留言:

  1. Dim k As Single
    Dim q As Single
    Private Sub Form_Load()
    Open App.Path & "\in.txt" For Input As #1
    Open App.Path & "\out.txt" For Output As #2
    Do Until EOF(1)
    k = 0
    Input #1, x
    For i = 1 To x
    Input #1, y
    k = k + y
    Next i
    k = k / x

    If Int(k) = k Then
    Print #2, k
    Else
    Print #2, Int(k) + 1 & ","; Int(k)
    End If
    Loop
    Close #2
    Close #1
    End Sub
    BY阿揚

    回覆刪除
  2. Dim ans As Integer, Q As Integer, T As Double
    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)
    su = 0
    Input #1, Q
    For i = 1 To Q
    Input #1, x
    su = su + x
    Next i
    T = su / Q
    If Int(T) <> T Then
    ans = Int(T)
    Print #2, "A=" & ans & "、" & ans + 1
    Else
    ans = Int(T)
    Print #2, "A=" & ans
    End If
    Loop
    Close #2
    Close #1
    End
    End Sub



    BY 小白

    回覆刪除
  3. 就是平均數而已嗎?
    還是要靠數學功力啊。

    回覆刪除