java设计螺旋方阵的思路_算法:螺旋方阵

//这是我的第一个java程序,大家指点一下拉,先谢谢拉。/*

螺旋矩阵问题

螺旋矩阵问题:编程产生H*L的螺旋矩阵。(为了方便编程我们规定H和L不大于9)。

H=5 L=5 H=6 L=3 H=2 L=2

1 2 3 4 5 1 2 3 4 5  6 1 2

16 17 18 19 6 14 15 16 17 18 7 4 3

15 24 25 20 7 13 12 11 10 9 8

14 23 22 21 8

13 12 11 10 9

*/

/* ------------------------ 我的一组结果 ----------------------

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 17

51 96 97 98 99 100 101 102 103 104 105 106 107 108 67 18

50 95 132 133 134 135 136 137 138 139 140 141 142 109 68 19

49 94 131 160 161 162 163 164 165 166 167 168 143 110 69 20

48 93 130 159 180 181 182 183 184 185 186 169 144 111 70 21

47 92 129 158 179 192 191 190 189 188 187 170 145 112 71 22

46 91 128 157 178 177 176 175 174 173 172 171 146 113 72 23

45 90 127 156 155 154 153 152 151 150 149 148 147 114 73 24

44 89 126 125 124 123 122 121 120 119 118 117 116 115 74 25

43 88 87 86 85 84 83 82 81 80 79 78 77 76 75 26

42 41 40 39 38 37 36 35 34 33 32 31 30 29 28 27

--------------------------------------------------------------*///: PrintHelixMatrix.java/*

* CopyRight (C) FreeDebug

* 2003-11-21

* Thank u for reading at my code. ^_^

*/class HelixMatrix{int[][] myMatrix=newint[20][20];staticint H=10;staticint L=9;staticint count=0;//填充数字记数int hh=H;//矩阵实际大小int ll=L;int stepX= hh;//初始步距int stepY= ll-1;int x=0;//初始坐标int y=0;void fillFromLeftToRight(int step) {for(int i=0; i

}

};void fillFromUpToDown(int step) {for(int i=0; i

y++;

myMatrix[y][x] = ++count;

}

};void fillFromRightToLeft(int step) {for(int i=0; i

x--;

myMatrix[y][x] = ++count;

}

};void fillFromDownToUp(int step) {for(int i=0; i

y--;

myMatrix[y][x] = ++count;

}

};publicvoid make() {do{//从左到右、从上到下、从右到左、从下到上,每一循环填一圈,很好理解吧。:)if(count!= H*L) fillFromLeftToRight(stepX--);if(count!= H*L) fillFromUpToDown(stepY--);if(count!= H*L) fillFromRightToLeft(stepX--);if(count!= H*L) fillFromDownToUp(stepY--);

}while(count!=H*L);

};publicvoid prtMatrix() {//打印出来,要注意排版哟!:)for(int i=0; i=100) System.out.print(" "+myMatrix[i][j]);else System.out.print(" "+myMatrix[i][j]);

System.out.println();

}

};

}public class PrintHelixMatrix{public staticvoidmain(String[] args) {

HelixMatrix aa=new HelixMatrix();

aa.make();

aa.prtMatrix();

}

}//:~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值