有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java递归的一般概念

下面是java中的一个简单递归问题。这个我一直在努力,但需要改进我的方法

编写一个带有两个int参数m和n的递归方法。前提条件要求0<;=m和m<;=n、 该方法打印一行m个星号,然后打印一行m+1个星号,依此类推,直到打印出一行n个星号。然后,同样的模式被向后重复:一行n个星号,然后n-1,依此类推到n。实现中唯一允许的循环是打印一行m个星号的循环

这就是我目前掌握的测试方法

package Recursion;

class Asterisk 
{
       public static void asterisk(int m, int n) 
       {
          if (m == n) 
          {
             printAsterisk(n);
             return;
          } 
          else if (m < n) 
          {
              printAsterisk(m);
              asterisk(m + 1, n);
          } 
          else 
          {
              printAsterisk(m);
              asterisk(m - 1, m);
          }
       }

      public static void printAsterisk(int m) 
      {
          for (int i = 0; i < m; i++) 
          {
              System.out.print("*");
          }
              System.out.println("");
      }

      public static void main(String[] args) 
      {
          int m = 3;
          int n = 5;

          asterisk(m, n);
          asterisk(n, m);
      }

}


共 (0) 个答案