Recursion 编写并测试PrintSquare方法

Recursion 编写并测试PrintSquare方法,recursion,Recursion,编写并测试具有整数参数n的printSquares方法,并打印从1到n的整数的平方,用逗号分隔。它应该先按降序打印奇数整数的平方,然后按升序打印偶数整数的平方。它不打印换行符。如果指定的整数小于1,它应该抛出IllegalArgumentException。例如:printSquares(4)应该打印9,1,4,16 printSquares(1)应该打印1 printSquares(7)应该打印49,25,9,1,4,16好了,我希望你的老师对此没有意见(如果你输入负数,这会引发异常,并且在末

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

好了,我希望你的老师对此没有意见(如果你输入负数,这会引发异常,并且在末尾添加一个无用的逗号,如果它真的困扰你,我可以修复)

公共静态无效打印顺序(int n){
去有序(n);
acsOrderEven(1,n);
}
公共静态无效解序(int n){
如果(n>0)
{
如果(n%2==1)
{
系统输出打印(n*n+“,”);
去有序化(n-2);
}
如果(n%2==0)
去有序(n-1);
}
}
公共静态无效acsOrderEven(整数n,整数目标){

if(n)听起来像是一个有趣的家庭作业问题。你为什么和我们分享它?可能不是在这个论坛的主题上,但忘记了…你尝试了什么?
    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);
        }
    }