编写并测试一个方法PrintSquare
问题描述:
编写并测试一个方法printSquares,它具有整数参数n,并打印从1到n的整数的正方形,用逗号分隔。它应该先按降序打印奇数整数的正方形,然后按照偶数整数的正方形按升序排列。它不打印换行符。如果指定的整数小于1,它应该抛出一个IllegalArgumentException。例如:printSquares(4)应该打印9,1,4,16打印平方(1)应该打印1 printSquares(7)应该打印49,25,9,1 ,4,16编写并测试一个方法PrintSquare
答
你有没有去,我希望你的老师可以这样做(这会引发异常,如果你输入数字并在最后添加一个无用的逗号,如果真的困扰你,我可以修复)
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);
}
}
听起来像一个有趣的家庭作业问题。你为什么与我们分享? –
可能不是这个论坛的主题,但忘记了......你有什么尝试? – user1032531