2014-09-26 203 views
1

我目前正在研究一個我正在研究的項目,並且我目前正在學習循環。這裏是如下方向...使用循環的三角數字(Python)

三角數字是物體的數目,可以通過使行的每個行中的比前一行中被佈置成三角形,與一種多對象。寫一個給定數字n的函數,將公式化地計算第n個三角形數字。寫另一個函數,顯示三角形數字直到幷包括n。

公式狀態(N(N + 1))/(2)或(N ^(2)+ N)/(2)

所以幾乎我想我需要制定一個函數,無論我爲n輸入等式,我都會得到答案。但是,我的問題是我不明白在這種情況下如何使用循環。我做了以下,但我得到一個錯誤。我覺得應該很簡單吧?

n=int(input("Please Enter n:")) 
y1=((n**2)+n)/(2) 
print (y1) 

我認爲上面的代碼回答了第一個問題,它在公式中計算第n個三角形數字,給定輸入n。然而,我很難爲第二個問題編寫一個函數,其中一個函數顯示三角形數字直到幷包括n。非常感謝您的幫助。

回答

0

可能是這樣的:

def all_triangle_numbers(n): 
    for i in range(1, n + 1): 
     print("n = {0}, triangle = {1}".format(i, (i ** 2 + i)//2)) 

all_triangle_numbers(10)   
+0

謝謝你。你能幫我解決第二個問題嗎?我很難爲第二個問題寫一個函數,其中一個函數顯示三角形數字直到幷包括n(我並不完全明白它的意思)。 – python2learn 2014-09-26 01:16:16

+0

謝謝你的工作。但是,我遇到了麻煩,因爲它詢問了包括n。這是如何運作的? – python2learn 2014-09-26 01:31:20

+0

IT上漲到10? – python2learn 2014-09-26 01:34:38

1

由於您的input()應該是raw_input(),您可能會收到錯誤消息。但是,如果情況並非如此,請詳細說明您遇到的錯誤。

下面是一些工作代碼:

def triangle(n): 
    return ((n**2)+2)/2.0 

n = int(raw_input('Please enter an integer: ')) 
print triangle(n) 

或者,打印所有三角形人數達到和包括ñ

def all_triangles(n): 
    for i in range(1, n+1): 
     print ((i**2)+2)/2.0, 

n = int(raw_input('Please enter an integer: ')) 
all_triangles(n) 
+0

我認爲代碼真的Ÿ工作,但我會嘗試你的。你能幫我解決第二個問題嗎?我很難爲第二個問題寫一個函數,其中一個函數顯示三角形數字直到幷包括n(我並不完全明白它的意思)。 – python2learn 2014-09-26 01:14:44

+0

@ python2learn,它聽起來像這是你原來的第一個問題。這是它所要求的for循環或while循環的一部分。如果這是我,我會做一個'while循環',它指出:'while(n> = 0){#stuff; --N}'。也許這可以實現上述答案? – 2014-09-26 01:19:39

+0

對不起,我無法抓住它。你能告訴我嗎? – python2learn 2014-09-26 01:30:45