分圆其实就是一个等差数列.因为每一次画一条线最多和n-1条有交线,最多也就是多n快
#include<stdio.h>//输出魔方阵
void main()
{
int a[17][17],i,j,n,k;
while(scanf("%d",&n)!=EOF)
{
for(i=0;i<n;i++)
{
for(j=0,k=1;j<=i;j++)a[i][j]=k++;
for(k--;j<n;j++)a[i][j]=k;
for(;j<2*n-1;j++)a[i][j]=a[i][2*n-2-j];
}
for(;i<2*n-1;i++)
{
for(j=0;j<2*n-1;j++)a[i][j]=a[2*n-2-i][j];
}
for(i=0;i<2*n-1;i++)
{
for(j=0;j<2*n-1;j++)printf("%d ",a[i][j]);
printf("\n");
}
}
}