输入n值,输出如图回型方阵,例如,当n=5时,
输出12345161718196152425207142322218131211109...
输出
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9 展开
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9 展开
1个回答
展开全部
找了个以前做的,供你参考:
/* 回型方阵,用于判断 */
int find(int i, int j, int n)
{
if (i == 1) return j;
if (i == n) return 3 * n - j - 1;
if (j == 1) return 4 * n - i - 2;
if (j == n) return n + i - 1;
return 4 * n - 4 + find(i - 1, j - 1, n - 2);
}
void fangzhen(int n)
{
int i,j,z;
for(i=1; i<=n; i++)
{
for(j=1; j<=n; j++)
{
z = find(i, j, n);
printf("%3d", z);
}
printf("\n");
}
}
void main()
{
fangzhen(9);
}
/* 回型方阵,用于判断 */
int find(int i, int j, int n)
{
if (i == 1) return j;
if (i == n) return 3 * n - j - 1;
if (j == 1) return 4 * n - i - 2;
if (j == n) return n + i - 1;
return 4 * n - 4 + find(i - 1, j - 1, n - 2);
}
void fangzhen(int n)
{
int i,j,z;
for(i=1; i<=n; i++)
{
for(j=1; j<=n; j++)
{
z = find(i, j, n);
printf("%3d", z);
}
printf("\n");
}
}
void main()
{
fangzhen(9);
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询