我在「Think Python」中遇到過一個練習,我不知道該怎麼做。Python練習
練習:1. 編寫一個名爲is_triangle的函數,它將三個整數作爲參數,並打印「是」或「否」,具體取決於是否可以用給定長度的棒形成三角形。
當然還有:「如果三個長度中的任何一個大於另外兩個的總和,那麼就不能形成三角形。否則,你CAN3「的方式來做到這一點
我在「Think Python」中遇到過一個練習,我不知道該怎麼做。Python練習
練習:1. 編寫一個名爲is_triangle的函數,它將三個整數作爲參數,並打印「是」或「否」,具體取決於是否可以用給定長度的棒形成三角形。
當然還有:「如果三個長度中的任何一個大於另外兩個的總和,那麼就不能形成三角形。否則,你CAN3「的方式來做到這一點
魚米之鄉,這裏是一個:
def is_triangle(a, b, c):
if (a > b + c) or (b > a + c) or (c > a + b):
print "No"
else:
print "Yes"
謝謝你,我正在尋找什麼。 解決並可能關閉。 – user1180169 2012-03-04 08:28:29
@ user1180169這是錯的。我的回答是對的。他的回答會給1,3,4作爲有效的一面。 – 2012-03-04 08:31:53
「如果三個長度中的任何一個大於其他兩個的總和,那麼你就不能形成一個三角形。」不要說「大於或等於」,因此該問題的陳述似乎允許共線點作爲三角形。 – Cameron 2012-03-04 08:34:27
三角不等式定理指出,一個三角形的任何一方總是比其他兩個的總和短兩側。
在上面的代碼中,它檢查任何一邊是否大於或等於其他邊的總和&打印「不可能」。
代碼:
>>> def is_triangle(sides):
... for i,l in enumerate(sides):
... if sides[i] > (sides[(i+1)%3] + sides[(i+2)%3]): return False
... return True
...
>>> is_triangle([3,4,5])
True
>>>
def is_triangle(a, b, c):
return a + b + c >= 2 * max(a, b, c) # supposed circumference suffices for largest edge and back.
編輯:改變>
到>=
是具有確切要求OP貼線。感謝您指出這一點,約翰!還添加了評論。
等待清潔數學+1,但根據OP的要求,我認爲它應該是> = not>。應允許1 2 3。 – 2012-03-04 09:31:42
@JohanLundberg:謝謝,合併了它。 – WolframH 2012-03-04 12:44:26
一個三角形的兩條邊的總和必須大於第三邊更大,以進行有效的三角 這裏去驗證碼:看它
def is_triangle(a,b,c): #take three arguments
if(a+b>c)and(b+c>a)and(a+c>b): #check the conditions
print "Yes"
else:
print "No"
一種方法是要注意,如果任何一方大於一半的限制(即棒長度的總和),則它不能形成三角形。因此,測試每個棒比丕林島/ 2變小。該測試適用於不只是3支,但任何數量的枝> 2
試試這個:
def is_triangle(a, b, c):
if((a + b > c) && (a + c > b) && (b + c > a)):
print "Yes"
else:
print "No"
,什麼是你的問題? – Manish 2012-03-04 08:05:33
顯然如何解決它。 – user1180169 2012-03-04 08:14:59
我只想到做一個函數,添加3個整數中的2個,並檢查它們是否大於第三個。這與每個數字1個elif語句。 – user1180169 2012-03-04 08:20:00