我做了一个程序

public class StarPattern2 {

    public static void main(String args[]) {
        printStar("*", 1, 5);
    }

    public static void printStar(String s, int i, int a) {
        if (a == 0)
            return;
        for (int j = 0; j < i; j++) {
            System.out.print(s);
        }
        System.out.println();
        a--;
        i++;
        printStar("*", i, a);
    }

}


将图案打印为

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


但是它正在使用一个循环,我不想使用任何循环,即仅使用递归,我想打印图案。

最佳答案

要删除递归,请将printStar替换为:

public static void  printStar(String s, int i, int a)
{
   for(;a>0;a--)
   {
     for(int j=0;j<i;j++)
     {
      System.out.print(s);
     }
     System.out.println();

     i++;
   }
}


对于任一递归或OR循环的更改要求:

public static void  printStar(String s, int i, int a)
{
    if(a == 0) return;

    System.out.println(s);

    printStar(s+"*", i, a-1);
}


注意,不再需要i变量。

关于java - 不使用递归仅使用一个循环就打印星形模式?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37565774/

10-10 05:02