网易有道笔试(2009)

来源:互联网 发布:淘宝优惠券地址转换 编辑:程序博客网 时间:2024/05/16 13:54

1 .打印如下形式的矩阵:

n=5: 

1   2   9 10 25 

4   3   8 11 24 

5   6   7 12 23 

16 15 14 13 22 

17 18 19 20 21 

 

n=6: 

1   2   9 10 25 26 

4   3   8 11 24 27 

5   6   7 12 23 28 

16 15 14 13 22 29 

17 18 19 20 21 30 

36 35 34 33 32 31


算法(用递归实现)

#include<stdio.h>void main(){void func(int jz[][100],int n,int flag);int jz[100][100];int n;printf("n=");//inputscanf("%d",&n);//processjz[0][0] = 1;func(jz,n,1);//outputint i,j;for(i=0;i<n;i++){for(j=0;j<n;j++)printf("%d\t",jz[i][j]);printf("\n");}}void func(int jz[][100],int n,int flag){if(flag > n)return;int i,j;if((flag+1)%2==0){for(i=0;i<flag+1;i++)jz[i][flag] = flag*flag + 1 + i;for(j=flag-1;j>=0;j--)jz[i-1][j] = flag*flag + 1 + i-1 + flag -j;}else{for(j=0;j<flag+1;j++)jz[flag][j] = flag*flag + 1 + j;for(i=flag-1;i>=0;i--)jz[i][j-1] = flag*flag + 1 + j-1 + flag - i;}func(jz,n,flag+1);}


0 0