题目描述
输入描述
输出描述
输入样例
4
输出样例
16 5 6 7
15 4 1 8
14 3 2 9
13 12 11 10
提示
AC代码如下:
#include<stdio.h>
int FM(int a[10][10],int s,int n,int f,int m)
{
int i;
if(s==1)
a[m/2][m/2]=1;
else
{
for(i=0;i<s-1;i++)
{
a[f+i][f]=n-i;
a[f+s-1][f+i]=n-(s-1)-i;
a[f+s-1-i][f+s-1]=n-2*(s-1)-i;
a[f][f+s-1-i]=n-3*(s-1)-i;
FM(a,s-2,n-4*(s-1),f+1,m);
}
}
return a[f][f];
}
int main()
{
int s,i,j,m;
int a[10][10];
scanf("%d",&s);
m=s;
int f=0;
int n;
n=m*m;
FM(a,s,n,f,m);
for(i=0;i<s;i++)
{
for(j=0;j<s;j++)
printf("%2d ",a[i][j]);
printf("\n");
}
return 0;
}
注:和矩阵填充的题目很相似 要变得东西很少;
这篇博客介绍了一种使用C语言解决矩阵填充问题的方法。通过递归函数FM填充矩阵,并在main函数中读取矩阵大小并展示填充结果。代码简洁且具有一定的通用性。

1027

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



