技术开发 频道

直接写屏的方法输出有规律的数字方阵


【IT168技术文档】

/* 有许多算法问题是关于数字方阵的,多数通用的算法是计算规律和数据并排着输出 而本例是用直接写屏方法输出,它的方法不再是计算数据与规律,而是计算数据位置,"跳"着输出数据 最近很忙,因此算法思想就不写了,大家自己领悟:) 以下是用直接写屏的方法输出有规律的数字方阵的一些例子 Write By S.K */ /* 写屏添数法 一 输出字轮转组成一正方形,已n作为边长,比如: n=4: 1 12 11 10 2 13 16 9 3 14 15 8 4 5 6 7 n=5: 1 16 15 14 13 2 17 24 23 12 3 18 25 22 11 4 19 20 21 10 5 6 7 8 9 */ /*Write By S.K*/ #include"stdio.h" int main(void) { int n,i,k,s=0,z=1,x=1,y=1; scanf("%d",&n); for(i=0;i<2*n-1;i++) { for(k=0;k<n-1-s;k++) { gotoxy(x*3,y); printf("%d",z); z++; switch(i%4) { case 0: y++; break; case 1: x++; break; case 2: y--; break; case 3: x--; } } if(i%4==3) { x++; y++; s+=2;} } gotoxy(x*3,y); printf("%d",z); getch(); } /*写屏添数法 二
  写屏输出如下数字排列:
n=3: 1 2 6 3 5 7 4 8 9 n=4: 1 2 6 7 3 5 8 13 4 9 12 14 10 11 15 16 n=5: 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 n=6: 1 2 6 7 15 16 3 5 8 14 17 26 4 9 13 18 25 27 10 12 19 24 28 33 11 20 23 29 32 34 21 22 30 31 35 36 .......
0
相关文章