高階55 三角形的個數

2021-10-05 09:49:33 字數 1622 閱讀 3034

55 三角形的個數

問題描述 :

明明的爸爸常用玩遊戲的方法來激發明明對幾何學的興趣。這天明明的爸爸和明明又玩起了有關三角形的遊戲。

明明爸爸對明明說:「我們能不能構造乙個周長為15的三角形?」 「太簡單了,」明明說道:「三條邊長都是5的三角形,它的周長不就是15嗎?」 「明明真聰明,算得真快。」明明爸爸接著說:「可是,我不想要三條邊都相等的三角形哪!」 明明大眼睛一轉,說道:「那也好辦啊,我只要對這個等邊三角形的一條邊減去乙個數,再把這個數加到另一條邊上就可以得到乙個新的周長為15的三角形。例如,在第一條邊上減去1,在第二條邊上加上1,這樣不就可以得到乙個周長為15的新的三角形了嗎?」 「哇,明明太聰明了」爸爸稱讚道。「對,如果把第一條邊上減去的1加到第三條邊上去不就又可以得到周長為15的另外乙個新三角形了嗎?」爸爸模仿著明明的方法和語氣。 「不對呀,爸爸。你構造的三角形和我構造的三角形是同樣的三角形。爸爸你看,我的三角形三條邊分別長為4、6、5,而你的三角形三條邊分別長為4、5、6,將三條邊按其邊長排序後都得到4、5、6,所以它們是同乙個三角形,不是兩個不同的三角形。」 「啊,還是明明聰明。那還有沒有其他周長為15的三角形嗎?」 「當然有啦。三條邊邊長分別為4、4、7的三角形,它的周長就是15,不過你可能不喜歡它,因為它有兩條邊的邊長相等。」 明明和爸爸玩了一下午這樣的三角形遊戲,明明一共又構造了另外兩個他認為他爸爸喜歡的三角形,即邊長分別為2、6、7的三角形和邊長分別為3、5、7的三角形。

晚上,明明躺在床上還在思考:如果周長不是15,而是90,那麼爸爸喜歡的三角形有多少個呢?

明明的問題可以歸結為:根據乙個正整數n(3 ≤ n ≤ 100),要求統計出同時滿足下列條件的三角形的個數:

邊長都是整數。

周長為n。

邊長兩兩不相等。

之所以有上述第乙個條件,那是因為明明只知道正整數,沒有學過分數和實數,因此他構造出的三角形的邊長均為正整數。 請你寫乙個程式來幫助明明計算出他認為他爸爸喜歡的三角形的個數。

輸入說明 :

你寫的程式需要從標準輸入裝置(通常為鍵盤)中讀入多組測試資料,每組測試資料僅佔一行,每行僅包括乙個正整數n(3 ≤ n ≤ 100),代表需要被統計的三角形的周長,n的前後都沒有任何空格。每組測試資料與其後一組測試資料之間沒有任何空行,第一組測試資料前面以及最後一組測試資料後面也都沒有任何空行。

輸出說明 :

對於每一組測試資料,你寫的程式要求計算出一組相應的運算結果,並將每組運算結果依次寫入到標準輸出裝置(通常為啟動該程式的文字終端,例如windows中的命令列終端)中。每組運算結果為乙個大於等於0的整數構成,即滿足條件的三角形的個數。例如:測試資料n為15時,運算結果應為3。輸出時,每組運算結果佔一行,其行首和行尾都沒有任何空格或其他字元,每組運算結果與其後一組運算結果之間沒有任何空行或其他字元,第一組運算結果前面以及最後一組運算結果後面也都沒有任何空行或其他字元。

輸入範例 :

1530

輸出範例 :312

#include

#include

intfun

(int n)

;int

main()

return0;

}int

fun(

int n)}}

}}return sum/6;

}

55 三角形的個數

55 三角形的個數 問題描述 明明的爸爸常用玩遊戲的方法來激發明明對幾何學的興趣。這天明明的爸爸和明明又玩起了有關三角形的遊戲。明明爸爸對明明說 我們能不能構造乙個周長為15的三角形?太簡單了,明明說道 三條邊長都是5的三角形,它的周長不就是15嗎?明明真聰明,算得真快。明明爸爸接著說 可是,我不想...

求大三角形中三角形個數

一道筆試程式設計題要求求乙個大三角形中所有小三角形的個數,大約是下面這種情況 首先想到是的將問題由求邊長為n的三角形個數 求邊長為n 1的三角形個數 求邊長為1的三角形個數 1,回溯求得所有三角形個數。但是再仔細一看因為有重疊三角形和倒置的三角形,所以這個方法不可行。接著找到三角形個數由三部分組成 ...

leetcode 有效三角形的個數

給定乙個包含非負整數的陣列,你的任務是統計其中可以組成三角形三條邊的三元組個數。示例 1 輸入 2,2,3,4 輸出 3 解釋 有效的組合是 2,3,4 使用第乙個 2 2,3,4 使用第二個 2 2,2,3 注意 陣列長度不超過1000。陣列裡整數的範圍為 0,1000 1.此題類似於求三數之和為...