编辑代码

class Main {
	
    // 递归方法
    public static void printByRecursion(int n, int currentRow) {
        if (currentRow > n) {
            return;
        }
        // 打印当前行的数字
        printNum1(currentRow, currentRow);
        // 递归调用,处理下一行
        printByRecursion(n, currentRow + 1);
    }

    // 打印当前行的数字
    public static void printNum1(int num, int count) {
        if (count == 0) {
            System.out.println(); //换行
            return;
        }
        System.out.print(num + " ");
        printNum1(num, count - 1); // 递归调用,继续打印相同数字
    }

    // 非递归方法
    public static void printNonRecursive(int n) {
        for (int i = 1; i <= n; i++) {
            printNum2(i, i);
            System.out.println(); // 换行
        }
    }

    // 打印当前行数字
    public static void printNum2(int num, int count) {
        for (int i = 0; i < count; i++) {
            System.out.print(num + " ");
        }
    }
    
    public static void main(String[] args) {
        int n = 6;
        int m = 8;
        printByRecursion(n, 1);
        System.out.println();
        printNonRecursive(m);
	}
}