同学问的一个数字游戏,当时想了很久。
考虑用递归,发现实现不了,只好用笨办法,找出数字生成的规律。
看起来也许很费劲,但算是我的探索足迹吧。作为我的BLOG的首篇文章,希望我以后有更大的进步!
/*
输入N=4,输出;以下……
* 1 2 3 4
* 12 13 14 5
* 11 16 15 6
* 10 9 8 7
*/
#include <stdio.h>
#define N 4
void main()
{
int i,j,k,n,a[N][N];
k=1;
for(j=0,n=N;n>=j;n--,j++)
{
for(i=j;i<n;i++)
a[j][i]=k++;
for(i=j+1;i<n;i++)
a[i][n-1]=k++;
for(i=n-2;i>=j;i--)
a[n-1][i]=k++;
for(i=n-2;i>j;i--)
a[i][j]=k++;
}
for(i=0;i<N;i++)
{ for(j=0;j<N;j++)
printf("%d/t",a[i][j]);
printf("/n");
}
}