【题目描述】
有一名室内装潢工程队的配料员。他的伙伴们喜欢采用“之”字型的方式铺大理石地砖,图案例如下:
1 2 6 7 15
3 5 8 14 16
4 9 13 17 22
10 12 18 21 23
11 19 20 24 25
如何用C 语言生成这样的图形。
【题目分析】
初见该题本以为是需要对奇偶进行分类处理(一般看见图形题就需要考虑这一方面),但幸运的是,这道题似乎不需要我们对奇偶进行讨论,似乎所有的用例都是奇数,所以我们只对奇数处理即可。下面我贴两组代码,一个是按贴地板的顺序依次填充的,另一部分则是运用递归对通项进行求解。
【常规解法】
#include
#include
#define maxn 20
int a[maxn][maxn];
int main(){
memset(a,0,sizeof(a));
int n, i=0,x,y;
scanf("%d",&n);
a[x=0][y=0]=++i;
while(i
if(y+1<=n){
a[x][++y]=++i;
}
while(y-1>=0&&x+1<=n){
a[++x][--y]=