数据:
代码
#include <stdio.h>
#include <stdlib.h>
void fun(int **a, int sx,int sy,int n,int start)
{
int i,j;
for (i=0;i<n;i++)
{
for (j=0;j<n;j++)
{
if(i==j)
a[sx+i][sy+j] = start + i;
else if(i==n-1)
a[sx+i][sy+j] = start + 3*n-i-3 -j;
else if (j==0)
a[sx+i][sy+j] = start + 3*n-i-3;
}
}
if(n<=3)
return;
else
{
sx +=2;
sy +=1;
fun(a,sx,sy,n-3,start+3*n-3);
}
}
int main()
{
int **a = 0;
int n,i,j;
printf("n=");
scanf("%d",&n);
a = (int**)malloc(n*sizeof(int*));
for (i=0;i<n;i++)
{
a[i] = (int*)malloc(n*sizeof(int));
}
for (i=0;i<n;i++)
{
for (j=0;j<n;j++)
{
a[i][j] = 0;
}
}
fun(a,0,0,n,1);
for (i=0;i<n;i++)
{
for (j=0;j<n;j++)
{
if(j<=i)
printf("%4d",a[i][j]);
}
printf("\n");
}
for (i=0;i<n;i++)
{
free(a[i]);
}
free(a);
return 0;
}