此問題為給定某些英文文句,其內容只有「英文、數字、空白及標點符號」,請選手判斷此文
句是否符合某些檢查條件?
子題1(10%):是否文句中存在任何子字串,其以「任一數字」開頭,「任一數字」結尾,中
間存在1 個至3 個大寫字母。
輸入說明:
第1~3 行表示欲檢查之3 句英文文句。
輸出說明:
第1~3 行分別對應第1~3 句檢查文句,若存在符合條件之子字串即輸出「有」,不存在即輸出
「沒有」。
輸入範例:【檔名:in-3-1.txt】
Tom Lin’s employee number is A123BSC45.
The price is 45 US dollars.
The machine code is 65K2.
輸出範例:【檔名:out-3-1.txt】
有
沒有
有
子題2(10%):是否文句中存在任何子字串,其為「合理」的「台北市」、「台中市」或「高
雄市」身份證字號。
註:
(1) 身份證字號第1 碼為地區碼,「台北市」以「A」開頭、「台中市」以「B」開頭、「高雄市」
以「E」開頭。
(2) 身份證字號的第2 碼為「性別」碼,其值應為「1」或「2」。
(3) 若將身份證字號的「地區碼」改為2 碼數字,其中「A」改為「10」、「B」改為「11」、「E」
改為「14」,其後併入原身份證後9 碼數字,成為1 個新的11 位數字碼。將此數字碼由左
至右分別乘以「1、9、8、7、6、5、4、3、2、1、1」,其相乘後的總和應可被10 整除。
輸入說明:
第1~3 行表示欲檢查之文句。
輸出說明:
若存在合理的身份證字號即輸出「有」,不存在即輸出「沒有」。
輸入範例:【檔名:in-3-2.txt】
His ID number is A120441768.
Her ID number is B272857734.
Their ID numbers are E286585485, E282467997, and E195445887.
輸出範例:【檔名:out-3-2.txt】
有
沒有
有
3-1
回覆刪除Dim ans As Boolean
Private Sub Form_Load()
Me.Hide
Dim n(100) As Integer
Open App.Path & "\in-3-1.txt" For Input As #1
Open App.Path & "\out-3-1.txt" For Input As #2
Do Until EOF(1)
Line Input #1, step
p = 1
For i = 1 To Len(step)
k = Mid(step, i, 1)
If Asc(k) >= 48 And Asc(k) <= 57 Then
n(p) = i: p = p + 1
End If
Next i
ans = True
For i = 1 To p - 2
If (n(i) - n(i + 1)) <> -1 Then
ans = False
End If
Next i
If ans Then Print #2, "沒有" Else Print #2, "有"
Loop
Close #2
Close #1
End
End Sub
by Yung
3-2
回覆刪除Dim ans As Integer
Private Sub Form_Load()
Me.Hide
Dim nans As Boolean
Open App.Path & "\in-3-2.txt" For Input As #1
Open App.Path & "\out-3-2.txt" For Input As #2
Do Until EOF(1)
nans = False
Line Input #1, step
step = Replace(step, ",", "")
step = Replace(step, ".", "")
k = Split(step)
For i = 0 To UBound(k)
ans = 0
If (Len(k(i)) = 10 And Val(Right(k(i), 9)) < 300000000) And (Mid(k(i), 2, 1) = 1 Or Mid(k(i), 2, 1) = 2) Then
n = Left(k(i), 1)
Select Case n
Case "A"
ans = 1
Case "B"
ans = 10
Case "E"
ans = 37
End Select
qq = 8
For j = 2 To 10
ans = ans + Val(Mid(k(i), j, 1)) * qq
If qq > 1 Then qq = qq - 1
Next j
If ans Mod 10 = 0 Then nans = True
End If
Next i
If nans Then
Print #2, "有"
Else
Print #2, "沒有"
End If
Loop
Close #2
Close #1
End
End Sub
BY Yung