C++-(2n+1)*(2n+1)的方格中填入1-(2n+1)^2个数使其每行每列,两个对角线的值均相等。

C++-(2n+1)*(2n+1)的方格中填入1-(2n+1)^2个数使其每行每列,两个对角线的值均相等。

虐人心 发布于 2017-03-27 字数 92 浏览 1062 回复 1

求最优算法
问题2 该算法是否适合2n*2n的模式,如果不符合,请提供2n情况下的最优算法

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

浮生未歇 2017-10-07 1 楼

int lao_bo_er(int degree, int x, int y, int num) {
int i;
int j;
int k;

i = y;
j = degree/2 + x;
for(k=num; k<=num+degree*degree-1; k++){
array[i][j] = k;
if((k-num+1)%degree == 0){
i = (i-y+1)%degree+y;
}
else{
i = (i-y-1+degree)%degree+y;
j = (j-x+1)%degree+x;
}
}
return 0;
}

没错就是magic square!