算法

public class Test
{   
    public static void main(String[] args)
    {
        if(args.length != 3){
            return;
        }
        int start = Integer.parseInt(args[0]);
        int end = Integer.parseInt(args[1]);
        int limit = Integer.parseInt(args[2]);
        
        //二维数组
        int[][] rows = new int[limit][];
        for (int i = 0; i < rows.length; i++)
        {
            rows[i] = new int[limit-i];
        }
        //赋值,行列互换
        for (int x = 0; x < rows.length; x++)
        {
            for (int y = 0; y < rows[x].length; y++)
            {
                rows[y][x] = start;
                start ++;
                //reset
                if(start > end){
                    start = 1;
                }
            }
        }
        //输出
        for (int x = 0; x < rows.length; x++)
        {
            for (int y = 0; y < rows[x].length; y++)
            {
                if(y != 0){
                    System.out.print(" ");
                }
                System.out.print(rows[x][y]);
            }
            //new line
            System.out.println();
        }
    }
}
public class Test2
{   
    public static void main(String[] args)
    {
        if(args.length != 3){
            return;
        }
        int start = Integer.parseInt(args[0]);
        int end = Integer.parseInt(args[1]);
        int limit = Integer.parseInt(args[2]);
        
        //初始化 [1,2,3,4,5]
        int[] array = new int[end];
        for (int i = 0; i < end; i++)
        {
            array[i] = i+1;
        }
        
        int index = start - 1;
        for (int row = 0; row < limit; row++)
        {
            for (int step = limit; step > row; step--)
            {
                if(step != limit){
                    System.out.print(" ");
                }
                //读取array中index位置的值
                System.out.print(array[index]);
                //调整步长,循环读取
                index = (index + step) % end;
            }
            //每行重新调整索引
            index ++;
            if(index >= array.length){
                index = 0;
            }
            //换行
            System.out.println();
        }
    }
}
原文地址:https://www.cnblogs.com/jfqiu/p/3397358.html