2010年3月23日 星期二

圍成正方形

這是個有趣的題目,給你已知長度的n 根棍子,請你試著寫一個程式,把這n 根棍子連

成一個正方形。連接的限制條件如下:

一、棍子只可以用端點來連接

二、不能折斷它

三、每一根棍子都必須使用到

輸入說明:

第一行的數字,代表有幾個問題要求解。第二行開始的每一行,為一個獨立的問題。每

一行的第一個整數為棍子數目n,其範圍為[4, 20] 的整數。接下來的n 個整數,分別代表這

n 根棍子的長度。每根棍子的長度範圍為[1, 100]間的整數。

輸出說明:

對每一個問題以一行輸出,如果所給定的棍子可以連成一個正方形,則輸出1。否則輸

出0。

輸入範例:

2

5 1 3 3 4 5

8 2 5 6 7 1 4 4 3

輸出範例:
0
1

2 則留言:

  1. Private Sub Form_Load()
    Open App.Path & "\in.txt" For Input As #1
    Open App.Path & "\out.txt" For Output As #2
    Input #1, x
    For q = 1 To x
    Input #1, cas
    Line Input #1, num
    w = Split(num)
    For i = 0 To cas - 1
    ans = ans + Val(w(i))
    Next i
    step = ans
    ans = ans \ 4
    For i = 0 To cas - 1
    w(i) = ans - Val(w(i))
    If Val(w(i)) < 0 Then Print #2, "0": Exit For
    nans = nans + Val(w(i))
    Next i
    If step = nans Then
    Print #2, "1"
    Else
    Print #2, "0"
    End If
    ans = 0: nans = 0
    Next q
    Close #2
    Close #1
    End Sub

    回覆刪除
  2. Dim ans As Boolean
    Private Sub Form_Load()
    Open App.Path & "\in.txt" For Input As #1
    Open App.Path & "\out.txt" For Output As #2
    Input #1, n
    For i = 1 To n
    Line Input #1, x
    ans = True
    a = Split(x, " ")
    lon = 0
    For j = 1 To UBound(a)
    lon = lon + Val(a(j))
    Next j
    Avg = lon / 4
    For j = 1 To UBound(a)
    If Val(a(j)) > Avg Then
    ans = False
    Exit For
    End If
    Next j
    If ans Then
    Print #2, 1
    Else
    Print #2, 0
    End If
    Next i
    Close #2
    Close #1
    End Sub

    回覆刪除