Problem Description
平面上有n條直線,且無三線共點,問這些直線能有多少種不同交點數。
比如,如果n=2,則可能的交點數量爲0(平行)或者1(不平行)。
Input
輸入數據包含多個測試實例,每個測試實例佔一行,每行包含一個正整數n(n<=20),n表示直線的數量.
Output
每個測試實例對應一行輸出,從小到大列出所有相交方案,其中每個數爲可能的交點數,每行的整數之間用一個空格隔開。
Sample Input
2
3
Sample Output
0 1
0 2 3
題目分析:
將n條直線排成一個序列,直線2和直線1最多隻有一個交點,直線3和直線1和直線2最多有兩個交點......直線n和其他n-1條直線最多有n-1個交點,由此得出n條直線互不平行且無三線共點的最多交點數:
max=1+2+...+(n-1)=n(n-1)/2;
以n=4爲例,
1,第四條與其餘直線全部平行-》無交點
2,第四條與其中兩條平行,交點數爲(n-1)*1+0=3;
3,第四條與其餘一條平行,這兩條平行線與另外兩條直線的交點數爲(n-2)*2=4,另外兩條直線即可能平行也可能相交,因此可能的交點數爲:(n-2)*2+0=4 或者(n-2)*2+1=5
4,第四條直線不與任何一條直線平行,交點數爲:(n-3)*3+0=3 或者(n-3)*3+2=5 或者(n-3)*3+3=6
即n=4時,可能的交點數爲0,3,4,5,6
從上述過程中發現:
n條直線的焦點方安數 =(n-r)條平行線與r條直線交叉的交點數 + r條直線本身的交點方案
=(n-r)*r+r條之間本身的交點方案數(1<= r <=n)