题目描述
2 17 24 23 12
3 18 25 22 11
4 19 20 21 10
5 6 7 8 9
输入描述
输出描述
输出填充后的矩阵,每个数字占4位。
输入样例
5
输出样例
1 16 15 14 13
2 17 24 23 12
3 18 25 22 11
4 19 20 21 10
5 6 7 8 9
提示
AC代码如下:
#include<stdio.h>
int fillmatrix(int mat[10][10],int size,int num,int offset,int a)
{
int i;
if(size==1)
mat[a/2][a/2]=a*a;
else
{
for(i=0;i<size-1;i++)
{
mat[offset+i][offset]=num+i;
mat[offset+size-1][offset+i]=num+size-1+i;
mat[offset+size-1-i][offset+size-1]=num+2*(size-1)+i;
mat[offset][offset+size-1-i]=num+3*(size-1)+i;
fillmatrix(mat,size-2,num+4*(size-1),offset+1,a);
}//递归填充内核;(小了一圈的矩阵)
}
return mat[offset][offset];
}
int main()
{
int size,i,j,a;
int mat[10][10];
while(scanf("%d",&size)!=EOF)
{
a=size;
int offset=0;
int num=1;
fillmatrix(mat,size,num,offset,a);
for(i=0;i<size;i++)
{
for(j=0;j<size;j++)
printf("%4d",mat[i][j]);
printf("\n");
}
}
return 0;
}
这是一个关于矩阵填充的编程问题,描述了如何使用递归方法填充一个矩阵,并给出了AC代码实现。程序接收矩阵大小作为输入,然后按照特定规则填充矩阵并打印结果。

2035

被折叠的 条评论
为什么被折叠?



