使用递归Java镜像三角形

使用递归Java镜像三角形,java,recursion,Java,Recursion,我需要帮助用java制作镜像三角形,如问题:。 但是,它需要使用递归来完成。我已经想出了如何制作三角形的两个版本: **** 和 *** 但我无法找出其他路线。作业的这一部分没有分级,它是为了帮助我们理解,以便我们能够找出如何制作镜像 public static String triangle(int size) { if (size == 0) return ""; String dots = triangle(size - 1); dots = do

我需要帮助用java制作镜像三角形,如问题:。 但是,它需要使用递归来完成。我已经想出了如何制作三角形的两个版本:
*
***

**
*
但我无法找出其他路线。作业的这一部分没有分级,它是为了帮助我们理解,以便我们能够找出如何制作镜像

public static String triangle(int size) {
    if (size == 0)
        return "";

    String dots = triangle(size - 1);
    dots = dots + ".";
    System.out.println(dots);

    return dots;
}

//right alignment- small to big
public static String triangle2(int size) {
    if (size == 0)
        return "";

    String dots = "";
    for (int i = 0; i < size; i++){
        dots = dots + ".";
    }


    System.out.println(dots);
    return dots + triangle2(size - 1);

}
public static String triangle3(int size) {
    if (size == 0)
        return "";    

    String spaces = "";
    for (int i=0; i < size-1; i++){
        spaces = spaces + " ";
    }


    String dots = "";
    dots = dots + ".";

    System.out.println(spaces + dots);
    return spaces + dots + triangle3(size-1);

}
公共静态字符串三角形(整数大小){
如果(大小==0)
返回“”;
串点=三角形(尺寸-1);
点=点+“;
系统输出打印项次(点);
返回点;
}
//右对齐-从小到大
公共静态字符串三角形2(整数大小){
如果(大小==0)
返回“”;
串点=”;
对于(int i=0;i
这里有一个解决方案,使用两种不同的递归方法:

public static void printMirrorTriangle(int size) {
    printRow(1, size);
}
private static void printRow(int row, int size) {
    System.out.println(repeat('*', row) + repeat(' ', (size - row) * 2) + repeat('*', row));
    if (row < size)
        printRow(row + 1, size);
}
private static String repeat(char c, int count) {
    return (count == 0 ? "" : c + repeat(c, count - 1));
}
输出

**
**    **
***  ***
********

因此,在执行递归时,需要提出一个基本情况和一个递归情况。你能不能先自己试着去做,然后把你认为这些案例应该是什么发布出来?我已经为此工作了3个小时,我很沮丧。在我继续讨论镜像部分之前,我真的很想让三角形3工作,因为它是镜像的一侧,但我似乎不知道如何同时正确打印空格和点。链接问题的答案显示了许多解决方案。拿其中一个,将for循环转换成递归,你就完成了。是的,我知道理想情况下我应该能够做到这一点,但除了指数和阶乘等简单的数学问题外,我似乎无法理解如何从迭代转换为递归。我欣赏这个解决方案,但它对我来说有点太高级了。我有点困惑它是如何运作的
printMirrorTriangle(4);