罗伯法

· · 个人记录

定义一个n×n数组;

把1放在第0行第n\2列;

设当前格为(i?j),设一步长变量k(k=2->n?n) 1) i减1,j加1;

2) 如果i<0那么i=n-1;

3) 如果j>n-1那么j=0;

4) 如果2)和3)同时出现那么就把j减回1,i加上2;

5) 如果a(i?j)不为空那么按照4)处理;

6) 把k的值赋给当前格a(i?j);

继续循环;

输出幻方阵。

百度百科词条