编写并测试一个方法PrintSquare

编写并测试一个方法PrintSquare

问题描述:

编写并测试一个方法printSquares,它具有整数参数n,并打印从1到n的整数的正方形,用逗号分隔。它应该先按降序打印奇数整数的正方形,然后按照偶数整数的正方形按升序排列。它不打印换行符。如果指定的整数小于1,它应该抛出一个IllegalArgumentException。例如:printSquares(4)应该打印9,1,4,16打印平方(1)应该打印1 printSquares(7)应该打印49,25,9,1 ,4,16编写并测试一个方法PrintSquare

+0

听起来像一个有趣的家庭作业问题。你为什么与我们分享? –

+0

可能不是这个论坛的主题,但忘记了......你有什么尝试? – user1032531

你有没有去,我希望你的老师可以这样做(这会引发异常,如果你输入数字并在最后添加一个无用的逗号,如果真的困扰你,我可以修复)

public static void printOrder(int n) { 
     decOrderOdd(n); 
     acsOrderEven(1, n); 
    } 
    public static void decOrderOdd(int n) { 
     if (n > 0) 
     { 
      if (n%2 == 1) 
      { 
       System.out.print(n*n + ", "); 
       decOrderOdd(n-2); 
      } 
      if (n%2 == 0) 
       decOrderOdd(n-1); 
     } 
    } 

    public static void acsOrderEven(int n, int target) { 
     if (n <= target) 
     { 
      if (n%2 == 0) 
      { 
       System.out.print(n*n + ", "); 
       acsOrderEven(n + 2, target); 
      } 
      if (n%2 == 1) 
       acsOrderEven(n+1, target); 
     } 
    }