用c++写一个双偶阶幻方代码
时间: 2024-05-19 13:17:19 浏览: 9
以下是使用 C 语言编写的双偶阶幻方代码:
#include <stdio.h>
int main()
{
int n;
printf("请输入一个偶数阶数n:");
scanf("%d", &n);
if(n % 4 != 0)
{
printf("输入错误!n必须是4的倍数!");
return 0;
}
int a[n][n];
int i, j;
for(i = 0; i < n / 2; i++)
{
for(j = 0; j < n / 2; j++)
{
a[i][j] = i * (n / 2) + j + 1;
a[i + n / 2][j + n / 2] = a[i][j] + n * n / 4;
a[i][j + n / 2] = a[i + n / 2][j] + n * n / 2;
a[i + n / 2][j] = a[i][j + n / 2] + n * n / 4 * 3;
}
}
if(n == 4)
{
a[0][1] = 3;
a[0][2] = 4;
a[1][0] = 6;
a[1][3] = 5;
a[2][0] = 7;
a[2][3] = 8;
a[3][1] = 10;
a[3][2] = 9;
}
else
{
int k;
for(k = 0; k < n / 4; k++)
{
int temp = a[k][0];
a[k][0] = a[k + n / 2][0];
a[k + n / 2][0] = temp;
temp = a[k][n / 2 - 1];
a[k][n / 2 - 1] = a[k + n / 2][n / 2 - 1];
a[k + n / 2][n / 2 - 1] = temp;
}
for(k = 0; k < n / 4 - 1; k++)
{
int temp = a[k][1];
a[k][1] = a[k + n / 2][1];
a[k + n / 2][1] = temp;
temp = a[k + n / 4][0];
a[k + n / 4][0] = a[k + n / 4 + n / 2][0];
a[k + n / 4 + n / 2][0] = temp;
temp = a[k + n / 4][n / 2 - 1];
a[k + n / 4][n / 2 - 1] = a[k + n / 4 + n / 2][n / 2 - 1];
a[k + n / 4 + n / 2][n / 2 - 1] = temp;
}
int temp = a[n / 4 - 1][0];
a[n / 4 - 1][0] = a[n / 4 + n / 2 - 1][0];
a[n / 4 + n / 2 - 1][0] = temp;
temp = a[n / 4 - 1][n / 2 - 1];
a[n / 4 - 1][n / 2 - 1] = a[n / 4 + n / 2 - 1][n / 2 - 1];
a[n / 4 + n / 2 - 1][n / 2 - 1] = temp;
for(i = 0; i < n; i++)
{
printf("\n");
for(j = 0; j < n; j++)
{
printf("%d ", a[i][j]);
}
}
}
return 0;
}
运行程序后,会要求输入一个偶数阶幻方的阶数 n,如果不是4的倍数,则输出输入错误。然后通过双偶阶幻方的构造法构造出一个 n 阶的双偶阶幻方,并输出。如果 n = 4,则需要进行特殊处理。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)