编辑代码

public class test4 {
    public static void main(String[] args) {
        int n = 5;
        System.out.println("递归算法:");
        printRecursivePattern(n);
        System.out.println("非递归算法:");
        printIterativePattern(n);
    }

    // 打印指定数量的数字
    private static void printNumbers(int count) {
        for (int i = 1; i <= count; i++) {
            System.out.print(count + " ");
        }
    }

    // 递归算法
    public static void printRecursivePattern(int n) {
        printRecursivePatternHelper(n, 1);
    }

    // 递归辅助函数,递归地打印每一行的数字
    private static void printRecursivePatternHelper(int n, int currentRow) {
        // 递归基:当当前行数大于 n 时,结束递归
        if (currentRow > n) {
            return;
        }

        // 打印当前行的数字
        printNumbers(currentRow);
        System.out.println();  // 换行

        // 递归调用,处理下一行
        printRecursivePatternHelper(n, currentRow + 1);
    }

    // 非递归算法
    public static void printIterativePattern(int n) {
        for (int i = 1; i <= n; i++) {
            // 打印当前行的数字
            printNumbers(i);
            System.out.println();  // 换行
        }
    }
}