在進入社會找工作時,通常會經過面試的過程,來決定是否要錄用這個人。假設今天你
去一家程式設計公司面試,面試的主考官出了一道題目。請你設計一個程式來解決下面的問題:
給你一個長方體,請問最少要用幾個大小相同的正方體,才能把這個長方體填滿,你可以使用的正方體大小不限,長方體及正方體的邊長必須均為正整數。
輸入說明:
第一行的數字,代表有幾個長方體。第二行開始的每一行,記錄了每個長方體長寬高的邊長,邊長的範圍為[1, 1000]間的整數。
輸出說明:
對輸入的每個長方體,分別以一行輸出所使用正方體的個數。
輸入範例:
2
4 6 8
3 5 7
輸出範例:
24
105
給你一個長方體,請問最少要用幾個大小相同的正方體,才能把這個長方體填滿,你可以使用的正方體大小不限,長方體及正方體的邊長必須均為正整數。
輸入說明:
第一行的數字,代表有幾個長方體。第二行開始的每一行,記錄了每個長方體長寬高的邊長,邊長的範圍為[1, 1000]間的整數。
輸出說明:
對輸入的每個長方體,分別以一行輸出所使用正方體的個數。
輸入範例:
2
4 6 8
3 5 7
輸出範例:
24
105
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 i = 1 To n
Input #1, x, y, z
For j = 2 To x
If x Mod j = 0 And y Mod j = 0 And z Mod j = 0 Then
x = x \ j
y = y \ j
z = z \ j
End If
Next
ans = x * y * z
Print #2, ans
Next
Close
Close
End
End Sub
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 i = 1 To n
Input #1, x, y, z
For c = 2 To x
If (x Mod c = 0) And (y Mod c = 0) And (z Mod c = 0) Then
x = x \ c
y = y \ c
z = z \ c
End If
Next c
ans = x * y * z
Print #2, ans
Next i
Close #2
Close #1
End
End Sub
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
Input #1, x, y, z
For j = 2 To x
If (x Mod j = 0) And (y Mod j = 0) And (z Mod j = 0) Then
x = x \ j
y = y \ j
z = z \ j
End If
ans = x * y * z
Next j
Print #2, ans
Next i
Close #2
Close #1
End
End Sub
小冰、晟晟、哲好,
回覆刪除程式正確。
就是最大公因數,最小公倍數的問題。題目將它敘述的很複雜,就是比賽常做的事。要能找出問題的解法。
(問題的解法,正規的講法就叫--演算法)
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 i = 1 To n
Input #1, h, w, l
gon = 0
For q = 1 To Val(h)
If Val(h) Mod q = 0 And Val(w) Mod q = 0 And Val(l) Mod q = 0 Then
gon = q
End If
Next q
If gon > 1 Then
ans = (Val(h) \ gon) * (Val(w) \ gon) * (Val(l) \ gon)
Else
ans = Val(h) * Val(w) * Val(l)
End If
Print #2, ans
Next i
Close #2
Close #1
End
End Sub