输出逆向矩阵

  在本校举行的算法比赛中。一,亲敌了,认为我自己不会做的,别人也不会做,但是结果是错了,有几个大牛做出了2个或者3个。我只做出了1个,老师看我可怜,又不是很严谨的比赛,所以给我对1.5道题。

  2,。当时被吓怕了,居然认为每一道题都是遥不可及的。但是现在看了刘汝佳的《算法竞赛入门经典》白书之后,问题迎刃而解。

  感慨万千,不知道现在才知道如何去解决这个问题是不是太晚了?

#include<stdio.h>
#include<string.h>
#define MAXN 10
int a[MAXN][MAXN];
int main()
{
	int n,x,y,tot=0;
	scanf("%d",&n);
	memset(a,0,sizeof(a));
	tot=a[x=0][y=0]=1;
	while(tot<n*n)
	{
		while(x+1<n&&!a[x+1][y])	
			a[++x][y]=++tot;
		while(y+1<n&&!a[x][y+1])	
			a[x][++y]=++tot;
		while(x-1>=0&&!a[x-1][y])	
			a[--x][y]=++tot;
		while(y-1>=0&&!a[x][y-1])	
			a[x][--y]=++tot;
	}

	for(x=0;x<n;x++)
	{
		for(y=0;y<n;y++)
			printf("%3d ",a[x][y]);
		printf("\n");
	}
	printf("\n");

	return 0;
}


 

你可能感兴趣的:(算法)