A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© zuopiezi 中级黑马   /  2015-6-14 13:00  /  720 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

提示: 该帖被管理员或版主屏蔽

7 个回复

正序浏览
学习下..
回复 使用道具 举报
回复查看
回复 使用道具 举报
好6啊,学习了
回复 使用道具 举报
  1.         public static void spiralMatrix(int n){
  2.                 int[][] matrix = new int[n][n];
  3.                 //自然数 1~n*n
  4.                 int num = 1;
  5.                 //位置
  6.                 int point=-1;
  7.                 // x每个方向对应位置的递增值
  8.                 int x=1;
  9.                
  10.                 for(int i = n;i>0;){
  11.                         for(int j=0;j<i;j++){
  12.                                 point+=x;
  13.                                 matrix[point/n][point%n] = num++;
  14.                         }
  15.                         //设置位置的递增值,及循环递减
  16.                         if(Math.abs(x)==1){
  17.                                 i--;
  18.                                 x*=n;
  19.                         }
  20.                         else{
  21.                                 x/=-n;
  22.                         }
  23.                 }
  24.                 //打印
  25.                 for(int i=0;i<matrix.length;i++){
  26.                         for (int j = 0; j < matrix[i].length; j++) {
  27.                                 System.out.print(matrix[i][j]+"\t");
  28.                         }
  29.                         System.out.println();
  30.                 }
  31.         }
复制代码
回复 使用道具 举报 1 0
  1. package wk.test;

  2. public class JustTest {

  3.         // just used to test
  4.         public static void main(String[] args) {
  5.                 // 2015-06-14
  6.                 int[][] iArr = {{1,2,3,4},{12,13,14,5},{11,16,15,6},{10,9,8,7}};;
  7.                 for(int i=0; i<iArr.length; i++) {
  8.                         for(int j=0; j<iArr[i].length; j++) {
  9.                                 if(iArr[i][j]<10) {
  10.                                         System.out.print(iArr[i][j] + "    ");
  11.                                 } else {
  12.                                         System.out.print(iArr[i][j] + "   ");
  13.                                 }
  14.                         }
  15.                         System.out.println();
  16.                 }
  17.                
  18.         }

  19. }
复制代码
回复 使用道具 举报
  1. int     arr[6][5]=
  2. {{1,           16,           3,           2,             17},
  3. {8,           6,             4,           3,             23},
  4. {2,           5,             7,           8,             12},
  5. {21,         2,             4,           6,             13},
  6. {11,       111,           111,       132,         12},
  7. {31,       311,           4111,     332,         32}
  8. };      
  9. void main()
  10. {
  11.         // 初始的区间坐标
  12.     int startX = 0, endX = 4;
  13.     int startY = 0, endY = 5;
  14.    
  15.     while(startX<=endX && startY<=endY)  // 循环条件
  16.     {
  17.         int i;
  18.         for(i=startX; i<=endX; i++)  // 输出上边的行
  19.             cout << arr[startY][i] << " ";
  20.         startY ++;         // 行的开始坐标增加
  21.         for(i=startY; i<=endY; i++)  // 输出右边的列
  22.             cout << arr[i][endX] << " ";
  23.         endX --;           // 列的结束坐标减小
  24.         for(i=endX; i>=startX; i--)   // 输出下边边的行
  25.             cout << arr[endY][i] << " ";
  26.         endY --;           // 行的结束坐标减小
  27.         for(i=endY; i>=startY; i--)  // 输出左边的列
  28.             cout << arr[i][startX] << " ";
  29.         startX ++;         // 列的开始坐标增加
  30.     }
  31. }
复制代码

你可以参考这个,我写的那个太复杂了
回复 使用道具 举报
做出来了,也可以得出答案,可是也许不是你想要的,我写的太复杂了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马