java 回型数代码
package 数组常见的算法;
public class 数组元素的赋值 {
public static void main(String[] args) {
// 回形数
int[][] huiXingArray = new int[8][8];
int m = 1;
for (int i = 0; i < huiXingArray.length; i++) {
// 1从左至右
for (int j = i; j < huiXingArray[i].length - i; j++) {
huiXingArray[i][j] = m;
m+=1;
// 2 从上至下
if (j == huiXingArray.length-(i+1)) {
for (int k = i+1; k < huiXingArray.length - i; k++) {
huiXingArray[k][j] = m;
m+=1;
// 3 从右至左[4][4]
if(k == huiXingArray.length-(i+1)) {
for (int k2 = k-1; k2 >= i; k2--) {
huiXingArray[k][k2] = m;
m+=1;
// 4 从下至上[4][0]
if(k2 == i) {
for (int l = k; l >= i+1; l–) {
huiXingArray[l][k2] = m;
m+=1;
}
}
}
}
}
//
}
}
}
for (int i = 0; i < huiXingArray.length; i++) {
for (int S = 0; S < huiXingArray.length; S++) {
System.out.print(huiXingArray[i][S] + "\t");
}
System.out.println();
}
}
}
结果:
1 2 3 4 5 6 7 8
29 30 31 32 33 34 35 9
28 50 51 52 53 54 36 10
27 49 63 64 65 55 37 11
26 48 62 68 66 56 38 12
25 47 61 59 58 57 39 13
24 46 44 43 42 41 40 14
23 21 20 19 18 17 16 15
有个小BUG当回型数到达最后一个时,会把数字给覆盖掉,懒得修改了,(加个判断即可)
本人是个懒癌。。。