#include<stdio.h>
#define max 17
int data[max][max];
int t;
int erfen(int i,int j,int sx,int sy,int n)
{
if(n==1)return;
n=n/2;int num;num=t++;
if(sx<i+n && sy<j+n)
erfen(i,j,sx,sy,n);
else
data[i+n-1][j+n-1]=num,erfen(i,j,i+n-1,j+n-1,n);
if(sx<i+n && sy >=j+n)
erfen(i,j+n,sx,sy,n);
else
data[i+n-1][j+n]=num,erfen(i,j+n,i+n-1,j+n,n);
if(sx>=i+n && sy<j+n)
erfen(i+n,j,sx,sy,n);
else
data[i+n][j+n-1]=num,erfen(i+n,j,i+n,j+n-1,n);
if(sx>=i+n && sy>=j+n)
erfen(i+n,j+n,sx,sy,n);
else
data[i+n][j+n]=num,erfen(i+n,j+n,i+n,j+n,n);
}
chushihua(int a[][],int n)
{
int i,j;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
data[i][j]=0;
return;}
int main()
{
int sx,sy,i,j,n,s;
while(scanf("%d %d %d",&sx,&sy,&n)!=EOF)
{
chushihua(data,n);
t=1;
i=1,j=1;
s=n+1;
erfen(i,j,sx,sy,n);
for(i=1;i<s;i++)
{
for(j=1;j<s;j++)
printf("%d ",data[i][j]);
printf("\n");
}
}
return 0;
system("pause");
}
由于这个代码有点乱,发上去之后处理有点问题,所以不用代码框,而直接发吧