标签:
2 3
0 1 0 2 3
1 #include<cstdio> 2 #include<string.h> 3 int main() 4 { 5 int n,i,,k,free; 6 int d[25][200]; //d[i][j]表示i条直线有j个交点 7 memset(d,0,sizeof(d)); 8 for(i = 1 ; i < 21 ; i++) 9 { 10 d[i][0]=1; //交点为0总是存在的 11 for(free = 0 ; free <= i ; free++) //free代表自由直线的数量 12 { 13 for(k = 0 ; k < free*(free+1)/2 ; k++) 14 { 15 if(d[free][k] == 1) 16 { 17 d[i][free*(i-free)+k]=1;//free*(i-free)+k表示i条直线free条自由直线的交点数(k为自由直线的交点数) 18 } 19 } 20 } 21 } 22 while(scanf("%d",&n)!=EOF) 23 { 24 for(i = 0 ; i <= n*(n-1)/2 ; i++) 25 { 26 if(i == 0) 27 printf("0"); 28 else 29 { 30 if(d[n][i]) 31 { 32 printf(" %d",i); 33 } 34 } 35 } 36 printf("\n"); 37 } 38 return 0; 39 }
标签:
原文地址:http://www.cnblogs.com/yexiaozi/p/5754082.html