一切皆可抽象

          大而無形 庖丁解牛 厚積薄發 滌慮玄覽
             ::  ::  ::  ::  :: 管理

          一次解決一個問題,不是一個好的解決方案。
          每個問題都有自己的場景,當遇到問題的時候,不要急躁。
          我們需要分析這個場景以及場景中其他的物件。這些物件和問題的關系(接口)和影響力(約束)。
          找出不影響其他場景物件的辦法,解決這個問題。如果只是站在問題的角度,解決問題,你的問題
          將會源源不斷。
          走一步看一步,不是好的解決方案。人生的職業規劃和前途,需要在社會這個大場景中認真的分析,
          機遇才會眷顧你。努力吧,朋友。現在的世界不屬于走一步看一步的人。

          從以上分析可以看出,好的思想并不是從書本中來的,可以從很多的場景中獲得。哪怕只是一句話,
          就可以改變真個思路。就如同哪怕吸了一點白粉,就會讓你一生毀掉。所以設計師的設計是很嚴肅的
          事情,豐富的人生閱歷和超強的創新能力,接受新事物的能力,將會造就偉大的設計師,記住,你就是。

          posted @ 2005-09-05 14:27 鋒出磨礪 閱讀(213) | 評論 (0)編輯 收藏

          結果
          順時針

          01   02   03   04  

          10   11   12   05  

          09   08   07   06  

          逆時針

          04   03   02   01  

          05   12   11   10  

          06   07   08   09  

          代碼
          public class test {
            public test() {
            }
            private static int[][] data = null;

            private int datai = 1;    //數值
            private static int  h =0, i=0, j;
            private int row1 =0,col1 =0,row2=0,col2=0;
           
            static int x=3,y=4;    // x=? y=?

            public static void main(String[] args)
            {
               j = y-1;
               data = new int[x][y];  //data init  定義了x行 y列的矩陣 用于存放數據
               test t = new test();
               t.input(1);           //開始數據塞入 1表示 從左到右
               //數據輸出
               System.out.println("順時針");
               for (int ki=0;ki     {
                 for (int kj=0;kj       {

                   System.out.print(addZero(String.valueOf(x*y).length(),data[ki][kj])+"   ");
                 }
                 System.out.println("");
               }


               System.out.println("逆時針");
               int[][] kk = niuniu(data,x,y); //矩陣倒置
               for (int ki=0;ki     {
                 for (int kj=0;kj       {

                   System.out.print(addZero(String.valueOf(x*y).length(),kk[ki][kj])+"   ");
                 }
                 System.out.println("");
               }


            }

            private  void input(int typej)
            {
               if (datai > x*y)
               {
                 //System.out.println("exit");如果數據塞入到頭 退出遞歸
               }
               else
               {


                //從左到右塞入數據
                if (typej == 1) {
                   for (int k = i; k <= j; k++) {
                     data[h][k] = datai++;
                   }

                   row1++;  //上面走了一行
                   h = y - 1 - col1;  //下一步從上到下表示的列值
                   i = row1;          //行起始
                   j = x - 1 - col1;  //行終止
                   input(2);         //從上到下遍歷數據
                 }

                 //從上到下塞入數據
                 if ( typej == 2) {
                   for (int k = i; k <= j; k++) {
                      data[k][h] = datai++;
                    }

                   col1++;  //左邊走了一列
                   h = x - 1 - row2;  //下一步從右到左表示的行值
                   i = y - 1 - col1;  //列起始
                   j = col2;          //列終止
                   input(3);          //從右到左遍歷數據
                 }

                 //從右到左塞入數據
                 if ( typej == 3) {
                   for (int k = i; k >= j; k--) {
                     data[h][k] = datai++;
                   }

                   row2++;  //下面走了一行
                   h = col2;  //下一步從下到上表示的列值
                   i = x - 1 - row2;   //行起始
                   j = row1;           //行終止
                   input(4);           //從下到上遍歷數據
                 }

                 //從下到上塞入數據
                 if (typej == 4) {
                   for (int k = i; k >= j; k--) {
                     data[k][h] = datai++;
                   }

                   col2++;  //左面走了一列
                   h = row1;  //下一步從左到右的行值
                   i = col2;   //列起始
                   j = y - 1 - col1;  //列終止
                   input(1);
                 }
               }
            }

              //補位
              public static String addZero(int weishu, int num) {
              /* int num=new Integer(num).intValue();*/
              int len = Integer.toString(num).length();
              if (len >= weishu) {
                return Integer.toString(num);
              }
              int i = 0;
              int j = weishu - len;
              String BH = "";
              while (i < j) {
                BH = "0" + BH;
                i = i + 1;
              }
              BH = BH + Integer.toString(num);
              return BH;
            }

            //列copy,第1列和最后一列互換 依次類推
            public static int[][] niuniu(int[][] temp,int xi,int yi)
            {
              int[][] rs = new int[xi][yi];
              int foxi = yi/2;
              for (int i=0;i    {
                for (int j=0;j      {
                  rs[j][yi-1-i] = temp[j][i];
                }
              }
              int col = foxi-1;
              int k = 0;
              if (yi%2 == 0)
              {
                k = foxi;
              }
              else
              {
                k = foxi +1;
              }
              for (int i=k;i<=yi-1;i++)
              {
                for (int j=0;j      {
                  rs[j][col] = temp[j][i];
                }
                col--;
              }

              if (yi%2 == 0)
              {
              }
              else
              {
               for (int j=0;j     {
                rs[j][foxi] = temp[j][foxi];
               }

              }

              return rs;
            }


          }

          posted @ 2005-09-05 14:24 鋒出磨礪 閱讀(1832) | 評論 (4)編輯 收藏

          僅列出標題
          共14頁: First 上一頁 6 7 8 9 10 11 12 13 14 
          主站蜘蛛池模板: 东城区| 岚皋县| 黑河市| 南通市| 通辽市| 郴州市| 磴口县| 新丰县| 海淀区| 河津市| 唐河县| 扶风县| 罗城| 榆林市| 霍州市| 鸡泽县| 成安县| 安西县| 随州市| 开封市| 台南市| 十堰市| 辽源市| 乐东| 襄樊市| 罗山县| 游戏| 宾川县| 岳西县| 道孚县| 丰镇市| 北碚区| 常州市| 始兴县| 禄劝| 屯留县| 万安县| 珠海市| 丰宁| 阿巴嘎旗| 新昌县|