请教一个问题 要求输出以下格式
1 3 6 10 15
2 5 9 14
4 8 13
7 12
11
这个用循环怎么编啊 愁死我了
先谢谢啦

解决方案 »

  1.   

    大概这样可以吧
    随手写的,没有整理,所以有点乱,凑合着用吧public class test{
    test(int m,int n){
    int[][] rule = new int[][]{{1,0},{-1,1},{0,1},{1,-1}};
    int[][] map = new int[m][n];
    for(int i=0,j=0,k=0,c=0;k<m*n;k++){
    map[i][j] = k;
    i += rule[c][0];
    j += rule[c][1];
    if(i>=m||j>=n){
    int[] tmp = rule[c];
    if(i>=m)
    rule[0] = new int[]{0,1};
    else if(j>=n)
    rule[2] = new int[]{1,0};
    i -= tmp[0];
    j -= tmp[1];
    if(!(c==0||c==2)) c=c>=rule.length-1?0:c+1;
    i += rule[c][0];
    j += rule[c][1];
    }
    if(c==0||c==2||((i==0||i==m-1)&&c==1)||((j==0||j==n-1)&&c==3)) c=c>=rule.length-1?0:c+1;
    }
    for(int i=0;i<map.length;i++)
    for(int j=0;j<map[i].length;j++)
    System.out.print(map[i][j]+(j==map[i].length-1?"\n":" "));
    }
    public static void main(String args[]){
    new test(5,5);
    }
    }C:\java>java test
    0 2 3 9 10
    1 4 8 11 18
    5 7 12 17 19
    6 13 16 20 23
    14 15 21 22 24
      

  2.   

    import java.io.*;
    public class app{
        public static void main(String args[]){
         
          
       int i,n,k,j=0,m=5;   for(n=1;n<=5;n++)
           {
                k=0;
                for(i=n;i<=m;i++)
                    {                   System.out.print(i+k+j);
                        k=i+k;
                    }
                System.out.println();
               j=j+n;
                j--;
            }
        }
    }终于出来了 同样谢谢上面的师兄啦