int main()
{
int j = 0;
int k = 0;
int arr[30][30] = { 0 };
int n = 0;
scanf("%d", &n);
int row = 0;
int col = 0;
int i = 0;
if (n % 2 == 1)//奇数情况
{
col = n / 2;
arr[0][col] = 1;
for (i = 2; i <= n * n; i++)
{
int tmp1 = row;
int tmp2 = col;
row--;
if (row < 0)
{
row = n-1;
}
col++;
if (col == n )
{
col = 0;
}
if (arr[row][col] != 0)
{
row = tmp1+1;
col = tmp2;
}
arr[row][col] = i;
}
}
if (n % 4 == 0)
{
int p = 0;
int q = 0;
int tmp = n / 4;
i = 1;
for (p = 0; p < tmp; p++)
{
for (q = 0; q < tmp; q++)
{
int x = 0;
int y = 0;
while (x < n)
{
if (x - p * 4 == y - q *4 || x - p * 4 + y - q * 4 == 3)
{
arr[x][y] = 1;
}
y++;
if (y == n)
{
y = 0;
x++;
}
}
}
}
for (j = n-1; j >=0; j--)
{
for (k = n-1; k >=0;k--)
{
if (arr[j][k] != 0)
{
arr[j][k] = i;
}
i++;
}
}
i = 1;
for (j = 0; j <n; j++)
{
for (k =0; k<n; k++)
{
if (arr[j][k] == 0)
{
arr[j][k] = i;
}
i++;
}
}
}
printf("范存志 1120210358\n");
for(j=0;j<n;j++)
{
for (k = 0; k < n; k++)
{
printf("%-4d", arr[j][k]);
}
printf("\n");
}
return 0;
}
魔方阵的奇数阶和4n阶
最新推荐文章于 2022-12-23 18:00:23 发布