#include<stdio.h>
#define N 16
int a[100][100];
int t=1;
void Tromino(int (*a)[N],int dr,int dc,int tr,int tc,int size)
{
int s;
if(size==1)
return;
if(size>1)
{
s=size/2;
if(dr<=(tr+s-1)&&dc<=(tc+s-1))
{
a[tr+s-1][tc+s]=t;
a[tr+s][tc+s]=t;
a[tr+s][tc+s-1]=t;
t++;
Tromino(a,dr,dc,tr,tc,s);
Tromino(a,tr+s-1,tc+s,tr,tc+s,s);
Tromino(a,tr+s,tc+s,tr+s,tc+s,s);
Tromino(a,tr+s,tc+s-1,tr+s,tc,s);
}
if(dr<=(tr+s-1)&&dc>(tc+s-1))
{
a[tr+s-1][tc+s-1]=t;
a[tr+s][tc+s-1]=t;
a[tr+s][tc+s]=t;
t++;
Tromino(a,dr,dc,tr,tc+s,s);
Tromino(a,tr+s-1,tc+s-1,tr,tc,s);
Tromino(a,tr+s,tc+s-1,tr+s,tc,s);
Tromino(a,tr+s,tc+s,tr+s,tc+s,s);
}
if(dr>(tr+s-1)&&dc<=(tc+s-1))
{
a[tr+s-1][tc+s-1]=t;
a[tr+s-1][tc+s]=t;
a[tr+s][tc+s]=t;
t++;
Tromino(a,dr,dc,tr+s,tc,s);
Tromino(a,tr+s-1,tc+s-1,tr,tc,s);
Tromino(a,tr+s-1,tc+s,tr,tc+s,s);
Tromino(a,tr+s,tc+s,tr+s,tc+s,s);
}
if(dr>(tr+s-1)&&dc>(tc+s-1))
{
a[tr+s][tc+s-1]=t;
a[tr+s-1][tc+s-1]=t;
a[tr+s-1][tc+s]=t;
t++;
Tromino(a,dr,dc,tr+s,tc+s,s);
Tromino(a,tr+s,tc+s-1,tr+s,tc,s);
Tromino(a,tr+s-1,tc+s-1,tr,tc,s);
Tromino(a,tr+s-1,tc+s,tr,tc+s,s);
}
}
}
main()
{
int i,j,dr,dc,a[N][N];
printf("please input dr(0<dr<%d):",N);
scanf("%d",&dr);
printf("please input dc(0<dc<%d):",N);
scanf("%d",&dc);
a[dr][dc]=0;
Tromino(a,dr,dc,0,0,N);
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
printf("%-4d",a[i][j]);
printf("\n");
}
system("pause");
}
1111111
最新推荐文章于 2025-05-10 18:09:08 发布